用过 Docker 的亲们进来瞅瞅,关于数据卷容器的问题

2015-04-02 19:26:19 +08:00
 Mush
我理解的数据卷容器应该是只有数据,没有其他东西,但是如果我使用Ubuntu的镜像创建一个数据卷容器,像酱紫
docker run -d -v /data --name some_data some_ubuntu echo this is some data
然后创建的容器中还是会包含基础镜像中得文件们吧?
还有一个问题是,如果在容器A连接上那个容器,那么容器A的/data目录下的文件会保存到some_data这个容器中吧?那么它具体是把文件存到了some_data的什么位置呢?我好困扰啊......
3000 次点击
所在节点    Docker
2 条回复
fly4us
2015-04-02 22:02:22 +08:00
简单的说,数据卷容器不需要运行的,创建了就可以使用的
docker create -v /data --name some_data some_ubuntu

问:“创建的容器中还是会包含基础镜像中得文件们”
答:是对的,这个容器可以运行,但是如果仅仅是为了作为数据卷容器,不需要运行起来,放在那里就行了,别的容器使用这个数据卷容器,通过volumes_from参数
docker run -d --volumes-from some_data --name some_app some_ubuntu
这样some_app 的/data 被映射到some_data的/data

问:“那么它具体是把文件存到了some_data的什么位置呢?”
答:系统中所有的卷(不仅仅是数据卷容器的卷)都在这里保存(甚至可以直接修改里边的内容)
/var/lib/docker/vfs/dir
Mush
2015-04-03 19:58:19 +08:00
@fly4us 昂,我发现了,如果我commit一个数据卷容器的话导出的镜像是不包含里面的数据的,只能通过其他方式备份数据卷容器的数据.今天又研究了下,做个了3M的只有一个echo的镜像来当数据卷容器,还在Github找到个备份数据卷容器数据的脚本.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181192

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX