docker commit 将容器打包成镜像,为什么容器里的文件带不进去?

您所在的位置:网站首页 docker打包成镜像 docker commit 将容器打包成镜像,为什么容器里的文件带不进去?

docker commit 将容器打包成镜像,为什么容器里的文件带不进去?

2022-05-09 04:09| 来源: 网络整理| 查看: 265

回忆一下你的基础镜像启动时是否用到-v参数,这是挂载,如果用到,那你应该很好理解了,因为docker的挂载是将宿主机的文件挂载到容器的目录,实际存储在宿主机上,而不是容器里,如果基于此打包,是不会将挂载的文件打包到新容器内的。

docker run -itd --name test1 -v /Users/xxx/test:/data centos:centos7 835ba278667c2dc8c5746554c2f829317cdafbc5d7e72c00a2fd5e69b6c659df / % docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 835ba278667c centos:centos7 "/bin/bash" 9 seconds ago Up 3 seconds test1 a8c40bb629e5 centos:centos7 "/bin/bash" 4 days ago Up 4 days base # 我在/Users/xxx/test 目录写了一个demo.txt,然后在容器中执行,容器中可以看到这个文件 / % docker exec -it 835b ls -l /data total 96 -rw-r--r-- 1 root root 96658 Jan 24 06:09 demo.txt # 根据此容器commit成镜像 docker commit -p 835b test2 sha256:dde9ceeb2787929c82375ea636f984ea02e2e22d44d124589f3108321d6b0570 # 根据新镜像运行新容器test2 docker run -itd --name test2 dde9 6c43c58aa47e67c69b05269fdf6a07353b8e9e612a86d4effb3d6c457cf38ea # 查看新容器/data目录下是否有demo.txt docker exec -it 6c43 ls -l /data total 0 # 显然没有,新容器不会重复上一个容器的映射,如果需要映射挂载,仍然需要重新-v


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3