• 容器生命周期
  • docker命令获取帮助
  • docker的常用命令
  • docker基本操作
  • 镜像管理

  • 容器生命周期 运行容器一个实例: #docker run -it --rm --name bbox busybox:latest /bin/sh 当运行这条指令后的执行流程步骤: 1.检查本地是否存在指定的镜像,不存在则从registry下载; 2.利用镜像启动容器 3.分配一个文件系统,并且在只读的镜像层之外挂载一个可读写层; 4.从宿主机配置的网桥接口桥接一个虚拟接口给此容器; 5.从地址池中分配一个地址给容器; 6.执行用户指定的应用程序; 7.程序执行完成后,容器即终止 注意:容器是为任务而生,任务完成即销毁,释放资源。为单一任务(进程)设计

  • docker命令获取帮助 man ,docker --help... 用法:docker [OPTIONS] COMMAND docker COMMAND --help 获取单个指令的详细用法

  • docker的常用命令 环境信息相关: info version :查看当前安装版本信息 系统维护相关: images :查看本地镜像 inspect:查看docker对象的详细信息,json格式 build:构建镜像 commit :基于已有容器创建镜像 pause/unpause :暂停(恢复)当前运行容器 ps:查看当前在运行的容器 rm :删除 docker ps -qa |xargs docker rm -f rmi :删除镜像 docker images -qa |xargs docker rmi 删除 所有镜像 run:运行容器 start/stop/restart:启动、停止、重启容器 top:用于查看正在运行的容器中的进程的运行状态 kill:终止当前运行的某个容器 ... 日志信息相关: events history logs:查看容器运行日志 Docker hub服务相关: login:登录仓库 logout pull:从仓库拉取镜像到本地 push:将镜像推送至某仓库 search:搜索镜像

  • 基本操作:

    • 启动一个nginx容器,使其在后台运行并将其80端口映射到宿主机8080端口 docker run -d -p 8080:80 httpd docker run常用选项: -t:配置一个伪终端并绑定到容器的标准输入上 -i:让容器的标准输入保持打开 -d:将容器放入后台运行 -c:指定分配该容器的cpu分片 -m:指定分配给该容器的内存大小,单位为B,K,M,G --name:为容器分配指定名称 --rm:当容器退出时自动删除容器
[root@xt ~]# docker run -it --rm alpine:latest /bin/ls 
bin    etc    lib    mnt    root   sbin   sys    usr
dev    home   media  proc   run    srv    tmp    var
[root@xt ~]# docker run -it alpine:latest /bin/ls 
bin    etc    lib    mnt    root   sbin   sys    usr
dev    home   media  proc   run    srv    tmp    var
[root@xt ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAME
S49aedd5aca20        alpine:latest       "/bin/ls"           10 seconds ago      Exited (0) 8 seconds ago                       joll
y_goldwasser
- 把容器运行在前台:启动一个alpine容器输出 hello world,打印完即退出		
`[root@xt ~]# docker run --rm alpine:latest /bin/echo "hello woeld"
hello woeld

- 容器运行在后台:docker run -d alpine:latest /bin/sh -c "while true; do echo hello world; sleep 1;done"`

服务类容器需要长期运行,所以使用daemon的方式运行;而工作类环境通常是给我们提供一个临时的工作环境,所以一般以run –ti的方式在前台运行

- 查看当前节点上的容器状态
docker ps    #查看当前正在运行的容器 

选项: -a:查看所有容器,包括停止的 -q:只显示容器ID -l:显示最后一次创建的容器`

  • 镜像管理操作

    • 获取镜像 docker pull name:tag #镜像直接从官方网站下载 docker pull xuetong.com:5000/centos:6.6 #从指定仓库下载
    • 查看镜像 docker images docker inspect centos:latest #获取镜像的详细信息
  • 镜像打标签 docker tag centos:latest xuetong.com:5000/centos:6.6

    • 搜索镜像 docker search NAME:tag 建议直接到官方网站搜索:https://hub.docker.com/explore/
    • 镜像导入导出
docker  save  -o  /PATH/TO/SOMEFILE.TAR  NAME[:TAG]		
docker  load  -i  /PATH/FROM/SOMEFILE.TAR 
docker image load -i /root/centos-latest.tar.xz 
- 删除镜像
docker rmi name:tag 
如果一个镜像有多个tag,只会删除指定的tag,镜像本身不会删除,如果docker rmi后指定镜像ID,则所有tag都会被删除
有时候重新安装后,发现docker rmi删除不了,可以直接删除rm -rf /var/lib/docker/image/overlay2/imagedb/content/sha256/* #默认镜像下载地方
`[root@xt ~]# docker rmi $(docker images -q)

Error: No such image: 0763c7d87fdd Error: No such image: e1ddd7948a1c Error: No such image: b2b03e9146e1 Error: No such image: 11cd0b38bc3c [root@xt ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE rancher/rancher latest 0763c7d87fdd 4 months ago 528MB busybox latest e1ddd7948a1c 4 months ago 1.16MB registry latest b2b03e9146e1 5 months ago 33.3MB ` - 创建镜像:commit(根据现有镜像创建),不建议使用这种方法,无获取构建过程,建议使用dockerfile构建。