容器分层
- 可写层:upperdir
- 镜像层(只读层):lowerdir
容器被删掉后,可写层的数据就没了,如果我们的需求是基于一个基础镜像制作一个新镜像,那么我们可以这么做,pul一个基础镜像,然后用该镜像run启动一个容器,然后exec进入容器内部署各种软件做好一些配置,这些写操作都留在了upperdir层,一旦销毁容器一切都不复存在,此时可以在容器外使用commit命令把容器整体upperdir+lowerdir导出为一个新镜像
下载基础镜像
docker pull centos:7
启动容器
docker run -d --name test111 centos:7 sleep 10000
进入容器安装、修改配置、编写启动文件
[root@test03 ~]# docker exec -ti test111 sh
sh-4.2# mkdir /soft
sh-4.2# echo 111 > /soft/1.txt
sh-4.2# echo 222 > /soft/2.txt
sh-4.2# echo "echo start...;tail -f /dev/null" > /soft/run.sh
sh-4.2# exit
commit镜像当前运行的容器,其实就是它的upperdir+lowerdir导出为一个新镜像
[root@test03 ~]# docker commit test111 myimage:v1.0
[root@test03 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myimage v1.0 adfed0daa724 4 seconds ago 204MB
[root@test03 ~]# docker run -d --name test222 myimage:v1.0 sh /soft/run.sh
ea04adcee6d7f157f764d2c8028eb5bdfd9c02a436ba3941c87a58304e853dfa
[root@test03 ~]#
[root@test03 ~]#
[root@test03 ~]# docker top test222
UID PID PPID C STIME TTY TIME CMD
root 21349 21330 0 11:39 ? 00:00:00 sh /soft/run.sh
root 21375 21349 0 11:39 ? 00:00:00 tail -f /dev/null
评论 (0)