Docker容器与镜像的关系
容器提交 – docker commit
docker commit -h
作用:
- 根据容器生成一个新的镜像
命令格式:
- docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
命令参数(OPTIONS):
- -a, --author string 作者
- -c, --change list 为创建的镜像加入Dockerfile命令
- -m, --message string 提交信息,类似git commit -m
- -p, --pause 提交时暂停容器 (default true)
命令演示 (在d9e 的容器中安装 net-tools 的包)
docker run -dti centos bash docker exec d9e56 yum install -y net-tools docker exec d9e56 ifconfig
把 d9e 的容器重新生成一个新的镜像
docker commit -m 'install net-tools' d9e56 centos-net:v1.0 docker images
查看 镜像 历史记录
docker history centos-net:v1.0
容器导出 – docker export
docker export -h
作用:
- 将容器当前的文件系统导出成一个tar文件
命令格式:
- docker export [OPTIONS] CONTAINER
命令参数(OPTIONS):
- -o, --output string 指定写入的文件,默认是STDOUT
命令演示
docker export -o net-tools-image.tar d9e ls
容器打包的导入 – docker import
docker import -h
作用:
- 从一个tar文件中导入内容创建一个镜像
命令格式:
- docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
命令参数(OPTIONS):
- -c, --change list 为创建的镜像加入Dockerfile命令
- -m, --message string 导入时,添加提交信息
命令演示
docker import -m '(import) install net-tools' net-tools-image.tar centos2:v1.0
docker history centos2:v1.0
可以看到 import 和 commit 都会生成一个镜像,区别在于import 生成的是一个全新的镜像不保留历史的信息,而 commit 会保留历史的信息,这点可以通过 docker history 去查看
深入理解Docker容器与镜像
镜像的layer
这个可以通过 docker inspect 去查看,每对镜像进行一次修改,都会在Layers 中增加一条记录
镜像的视角
容器的Layer
容器的视角
容器与镜像的底层关系
容器的运行