承接上文:centos8.0下docker安装

查看帮助

docker image --help

查看image列表

sudo docker image ls

显示:

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    feb5d9fea6a5   6 months ago   13.3kB

说明本地仓库有hello-world镜像。

拉取镜像

sudo docker pull hello-world:latest

拉取后可以查看镜像详细信息:

sudo docker image inspect hello-world

创建容器

  1. 拉取一个镜像busybox:
sudo docker pull busybox:latest
  1. 使用该镜像创建一个容器
sudo docker container create -it --name boy busybox:latest

-t:让docker分配一个伪终端并绑定到容器的标准输入上, -i:以交互模式运行容器。更多的参数解释 会在本系列后文发布。-it是二者的缩写。

docker container:表示使用docker的容器命令,通过docker container --help可以查看针对容器的所有命令。

create:创建容器。

–name:命名容器,后面的“boy”为容器名,busybox:latest表示容器是基于哪个镜像创建。

  1. 查看创建的容器
sudo docker container ls -a
  1. 删除镜像
    当镜像已经被用来制作成容器,直接用rm删除镜像,会提示无法删除。提示内容如下:
Error response from daemon: conflict: unable to remove repository reference "busybox:latest" (must force) - container 31ba1900ec20 is using its referenced image beae173ccac6

此时,可以选择关闭容器,然后删除容器,再删除镜像。也可以选择强制删除镜像:

sudo docker image rm -f busybox:latest
  1. 镜像的导出与导入
    为busybox镜像保存备份:
sudo docker image save busybox:latest >bs.tar

保存后,查看保存的文件,输入:

ll

使用scp命令可以拷贝镜像文件,然后用load命令导入镜像,本次没有模拟环境,暂不尝试。

这两个命令便于镜像的转移和保存。

  1. 启动容器
sudo docker container start boy
  1. 进入容器
sudo docker container attach boy

进入后,可以查看容器一系列参数:

hostname:名称
ifconfig:ip相关的参数
route:网关
cat /etc/resolv.config:查看dms
ping www.baidu.com:查看能不能ping通,连接网络
echo $PATH:查看容器当前地址
  1. 容器转换为镜像
    为boy容器保存备份:
sudo docker container export boy>bs1.tar

第五步提到的,是对镜像进行保存和导入,使用的命令是save和load。
这里是在镜像的基础上,生成容器后,对容器进行备份,生成了一个对应的镜像。使用的命令是export 和import。
导入备份:

sudo docker image import bs1.tar

执行上述命令后,得到的镜像是没有名称和标签的。导入时设置名称和标签:

sudo docker image import bs1.tar busybox_self:self

一般很少使用这两个命令,更常用的commit,将容器提交为镜像