Welcome

Docker镜像、容器的基本操作

Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容器镜像。

Docker工具默认从这个公共镜像库下载镜像。https://hub.docker.com/explore

镜像不是一个单一的文件,而是有多层构成。我们可以通过docker history <ID/NAME> 查看镜像中各层内容及大小,每层对应着Dockerfile中的一条指令。Docker镜像默认存储在/var/lib/docker/<storage-driver>目录中

容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。如果容器删除了,最上面的读写层也就删除了,改动也就丢失了。Docker使用存储驱动管理镜像每层内容及可读写层的容器层。

 

docker镜像常用的命令

# 搜索镜像:docker search  <image>

      例:docker search centos

 

# 下载镜像:docker pull <image>

      docker pull centos:7.6.1810(没有指定版本,默认会下载最新版)

 

# 查看镜像:docker  images

# 删除镜像:docker rmi  镜像 + ID

                           docker rmi  镜像名称 + 版本号

      docker rmi   例子:docker image rmi centos:latest

 

# 导出镜像:

docker save  例子:docker image save centos > docker-centos7.6.tar.gz

              简写方法:docker  save centos > docker-centos7.6.tar.gz

# 导入镜像:

docker load  例子:docker image load -i docker-centos7.4.tar.gz

              简写方法:docker load -i docker-centos7.4.tar.gz

 

# 上传镜像:docker push NAME[:TAG]

      可将自制的镜像,上传至自己的dockerhub账户

 

 

docker容器日常管理命令

# 创建容器:

docker run -it centos:7.6.1810 /bin/bash (默认启动环境为/bin/bash)

docker run -d nginx (启动一个镜像在后台运行)

docker run --name centos7.6 -it centos:7.6.1810 /bin/bash

  -it:          进入了命令交互界面
  -d:          后台运行

   -h:               指定容器的主机名
--name:    指定容器名称(所指定的名称不能在同一个容器中重复使用

--cpus:        指定CPU数量

--memory:  限定内存的大小

--restart=always: 指宿主机在重启docker服务时,容器也自动重启docker容器

                 例如:启动一个容器:     docker   run   -d   --restart=always  centos:6.9
                      重启docker服务:  systemctl   restart   docker

                      #通常情况下,启动一个容器不添加 --restart=always时,重启docker服务 (systemctl  restart  docker)后,
后台运行的docker容器处于停止状态 (Exited);
在启动容器时,添加
--restart=always,重启docker服务后,则后台 容运行的容器自动重启,处于(up)状态。

 

              例如:  docker run  --name nginx nginx
                    docker  stop  nginx                    将指定名称为nginx的镜像停止
                    docker run --name nginx nginx           再次指定同样的名称启动nginx容器就会报错哦!!
                                                            需要更改指定的容器名称,不能重复使用

 

 # 列出容器:    docker ps 

-a:显示所有的容器,包括未运行的
-l: 显示最近创建的容器
-n:列出最近创建的n个容器
-s:显示总的文件大小

 # 停止容器:docker stop + 容器名称 或  ID

 # 杀死容器:docker kill  container_name

 

 # 删除docker容器:docker  rm  + 容器名称 或  ID   

 (删除docker容器之前需要先停止容器,或者使用强制删除docker  rm  -f  + 容器名称 或 ID)

 # 批量删除容器:   docker rm -f `docker ps -a -q`    #更加简单

     for i in `docker ps -a |grep -i exit|sed '1d' |awk '{print $1}'`;do docker rm $i;done

 

 #  进入容器方法一:  docker attach + 容器名称  或  ID

     例:docker attach nginx   (快捷键Ctrl + p + q 可是实现退出容器,使容器继续在后台运行。)

 #  进入容器方法二: docker exec -it  +  容器名字 或 ID    /bin/bash

    例:docker exec  -it  nginx

    推荐使用exec方式:exec使用时会重新分配一个终端,不会影响容器的原有状态,反之attach不会重新分配终端。

 

docker的本质是:在隔离的环境运行的一个进程,所以docker容器内的第一个进程必须一直处于前台运行的状态(必须夯住),

      否则这个容器,就会处于退出状态!

附加:

         docker   image   镜像管理指令:

docker  容器常用选项 

 

 

 

 

 

posted @ 2019-12-31 23:51  彭彭の  阅读(226)  评论(0)    收藏  举报