Docker卷初始化 – 将数据从映像复制到容器
https://docs.docker.com/engine/userguide/dockervolumes/说:
“创build容器时会初始化卷,如果容器的基本映像包含指定安装点的数据,则在卷初始化时,现有数据将被复制到新卷中。
然而,这不完全是我所观察到的。 这是我的场景:
- 我创build了一个包含/ opt / data中的一些数据的容器
- 我提交这个容器并从中创build一个图像
- 我使用刚刚准备好的映像创build另一个容器,并创build一个将/ opt / data指向本地目录的卷。
根据文档,我预计图像的/ opt / data下的文件将被复制到本地创build的卷。 这没有发生..
<local>:~$ docker run --name test -it ubuntu bash root@76f42fce6ab7:/# mkdir /opt/data root@76f42fce6ab7:/# echo "foo" > /opt/data/my-data $ docker commit test test-with-data <local>:~$ docker run -it -v /tmp/test-volume:/opt/data test-with-data bash root@731b483527ad:/# ls /opt/data root@731b483527ad:/# root@731b483527ad:/# exit
有什么我不明白的吗?
这是因为你已经指定了一个主机目录。 如果你没有指定一个主机目录,而是让Dockerpipe理这个卷,它就可以像你期望的那样工作:
$ docker run --name test -it debian bash root@ac99b805a689:/# mkdir /opt/data root@ac99b805a689:/# echo "foo" > /opt/data/my-data root@ac99b805a689:/# exit exit $ docker commit test test-with-data a35463157fbee6180ed91c458288cf528da93a23bf340f44c3d2a7ff355fa2b1 $ docker run -it -v /opt/data/ test-with-data bash root@73f70c3b5518:/# ls /opt/data my-data root@73f70c3b5518:/# cat /opt/data/my-data foo
- 直接从同一networking中的机器访问kubernetes窗格
- 在具有http代理的企业networking上运行docker filebeat
- GitLab CI转轮无法连接到kubernetes中的unix:///var/run/docker.sock
- Flask Nginx Guincorn / uwsgi dockerconfiguration
- 恢复预先configuration的泊坞窗图像的方法
- 运行多个docker-compose(每台机器一台)
- 容器命令'/start.sh'找不到或者不存在,容器的入口点是shell脚本
- 结合多个Docker镜像来创build构build环境
- 单一docker集装箱在CPU性能上略胜过其主机:为什么?