CentOS7 Docker基本使用

一、常用命令

1. 帮助类
docker version //查看版本
    
docker info //查看详细信息
    
docker --help //查看帮助手册
2. 镜像操作类
docker images //列出所有本地镜像   
    -a //列出本地所有镜像(含中间映像层)
    -q //只显示ID,多作为参数执行批量操作
    --digests //显示镜像的摘要信息
    --no-trunc //显示完整的镜像信息
   
docker image 镜像名 //查找指定本地镜像

在这里插入图片描述

docker search 镜像名 //查找镜像
    -s num //列出收藏数不少于num的镜像

docker pull 镜像名[:TAG] //拉取镜像,TAG默认为latest,即最新版
    
docker rmi 镜像名 //删除镜像
    -f 镜像名 //强制删除

docker rmi -f $(docker images -qa) //删除全部镜像
    
docker build -f dockerfile文件名 -t 构建镜像名:TAG . //构建镜像,”.“表示当前路径
    
docker history 镜像名 //查看镜像的变更历史
3. 容器操作类
docker run [OPTIONS] 镜像名 [COMMAND][ARG...] //新建并启动容器
    --name 容器名 //定义一个容器名
    -d //后台运行容器,返回容器ID,即守护式容器
    -i //以交互模式运行容器,通常与t组合使用
    -t //为容器重新分配一个伪输入终端,通常与i组合使用
    -P //随机端口映射
    -p hostPort:containerPort //指定端口映射
    
例:docker run --name tomcat01 -d -p 8080:8080 tomcat
(新建并运行容器名为tomcat01、镜像模板为tomcat、主机端口8080映射容器端口8080且后台运行的容器)
   
docker ps //查看正在运行的容器
    -a //查看所有容器
    -l //显示最近创建的容器
    -n num //显示最近num个创建的容器
    -q //只显示容器ID
    --no-trunc //不截断输出
    
docker start 容器名或ID //启动容器
    
docker stop 容器名或ID //停止容器

docker restart 容器名或ID //重启容器
    
docker kill 容器名或ID //强制停止容器 
    
docker rm 容器名或ID //删除容器   
    -f //强制删除
    
docker ps -qa | xargs docker rm //利用管道符和可变参数xargs删除全部容器
    
docker rm -f $(docker ps -qa) //利用$删除所有容器
    
docker logs -f -t --tail num //查看容器日志
    -f //跟随最新的日志打印
    -t //加入时间戳
    --tail num //显示最后num条
    
docker top 容器名 //查看容器内进程
    
docker inspect 容器ID //查看容器内部细节
    
docker cp 容器ID:文件路径 拷入路径 //拷贝容器内文件至系统中
    
交互式容器中两种退出方法
    1)exit 退出且停止容器
    2)Ctrl+Q+P 退出不停止容器 
    
docker attach 容器ID //进入交互式容器的终端

docker exec 容器ID [COMMAND] //启动该容器的一个新进程,通过此命令开启的终端关闭后不会停止容器
    
docker exit -it 容器ID /bin/bash //打开一个新终端,并启动一个新进程
    
docker commit 容器ID 要创建的镜像名:[TAG] //提交容器副本使之成为一个新的镜像
    -m=”描述信息“
    -a=”作者“

二、容器数据卷

当我们使用docker容器的时候,会产生很多数据,我们对其中的一些数据要求做持久化,但是如果我们不对容器进行commit操作使数据作为镜像一部分保存下来,那么当容器删除后,数据也就没有了。所以为了保存数据在docker中,我们使用数据卷。

数据卷主要做数据共享数据持久化

特点:

  1. 数据卷可以在容器之间共享或重用数据
  2. 卷中的更改可以直接生效
  3. 数据卷中的更改不会包含在镜像的更新中
  4. 数据卷的生命周期一直持续到没有容器使用它为止

第一种:命令添加

docker run -it -v 主机绝对路径:容器内目录 镜像名
//直接通过命令添加数据卷实现主机和容器数据共享,容器关闭后数据依然同步
    
docker run -it -v 主机绝对路径:容器内目录:ro 镜像名
//带权限ro(read only):指容器内只读,只允许主机单向的写数据,容器只能读取
    
docker inspect 容器ID 
//可通过此命令直观的查看容器数据卷的情况和权限

第二种:dockerFile添加

//1.创建dockerFile文件
vim dockeFile
    
/** 内容大致:         
FROM centos
VOLUME ["/data1","/data2"]
CMD echo "----OK"
CMD ./bin/bash
*/

//2.构建镜像
docker build -f dockeFile -t 构建镜像名 .//代表使用当前的上下文路径
    
//3.运行容器
容器运行后,数据卷自动被创建,可通过docker inspect指令查看数据卷默认主机路径。 
  
//容器和容器间的数据共享
docker run -it --name dc02 --volumes-from dc01 centos 
//实现容器和容器之间的数据共享,以dc01为模板,dc02继承dc01,且dc02创建数据,数据依然可以传递到dc01

三、DockerFile

概念:是用来构建Docker镜像的文本文件,由一系列的命令和参数构成的脚本。

基础

  1. 每条保留字指令都必须为大写字母且后面要跟随至少一个参数。
  2. 指令按照从上到下,顺序执行。
  3. #表示注释
  4. 每条指令都会创建一个新的镜像层,并对镜像进行提交。

执行流程

  1. docker从基础镜像运行一个容器。
  2. 执行一条指令并对容器作出修改。
  3. 执行类似docker commit的操作提交一个新的镜像层。
  4. docker再基于刚提交的镜像运行一个新容器。
  5. 执行dockerfile中的下一条指令直到所有指令都执行完成。
保留字指令
  • FROM 【基础镜像,表示当前新镜像是基于哪个镜像的】
    • Bash镜像:scratch 【相当于Java中的Object】
  • MAINTAINER 【作者的姓名和邮箱地址】
  • RUN 【容器构建时需要运行的具体命令】
  • EXPOSE 【当前容器对外暴露出的端口】
  • WORKDIR 【指定在创建容器后,终端默认登录进来的目录位置】
  • ENV 【用来在构建镜像过程中设置环境变量】
  • ADD 【将主机下的文件拷贝进镜像且自动处理URL和解压tar压缩包】
  • COPY 【将主机下的文件拷贝进镜像】
    • 写法1:COPY src dest
    • 写法2:COPY [“src”, “dest”]
  • VOLUME 【指定容器数据卷】
    • 写法:VOLUME ["/data1", “/data2”]
  • CMD 【指定一个容器启动时要运行的命令,CMD可以被dockers run之后的参数替换】
    • 注意:可以有多个CMD,但只有最后一个生效
    • 写法1:CMD 命令
    • 写法2:CMD [“可执行文件”, “参数1”, “参数2”. . .]
    • 写法3:CMD [“参数1”, “参数2”. . .] 【指定ENTRYPOINT后,用CMD指定具体的参数】
  • ENTRYPOINT 【指定一个容器启动时要运行的命令,目的和CMD一样】
    • 和CMD区别:dockers run之后如果加了参数,CMD会被替换,而ENTRYPOINT会追加
  • ONBUILD 【当此文件构建的镜像作为另一个dockerfile的父镜像继承后ONBULID被触发】
BUILDBothRUN
FROMWORKDIRCMD
MAINTAINERUSERENV
COPYEXPOSE
ADDVOLUME
RUNENTRYPOINT
ONBUILD
.dockerignore
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值