首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从主机与容器共享目录或卷

从主机与容器共享目录或卷
EN

Stack Overflow用户
提问于 2015-10-06 07:27:01
回答 2查看 1K关注 0票数 3

我有一个目录(可能是稍后的卷),我想与所有的交互容器共享它。我知道,本地Docker卷存储在/var/lib/docker/volumesdocker run -v下似乎是最简单的方法,但我认为Data Volume Container是一种更加标准化的方法。我不知道如何从目录或现有的另一个卷创建这个卷容器。也许这是错误的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-06 09:01:50

创建和共享卷有两种方法: 1.使用Dockerfile上的Dockerfile指令。2在容器运行时指定-v <volume_name>选项,然后在每个需要共享数据的后续容器中使用--volumes-from=<container>。下面是一位前夫和后来者:

  1. 使用-v启动第一个容器,然后在共享卷的目录下添加一个测试文件。

docker运行-it -v / Test --v-名称=t估值1 ubuntu:14.04 / bin /bash root@ca30f0f99401:/# ls bin boot dev等本地库lib64媒体mnt选择根运行sbin srv sys Test-卷===>测试-在root@ca30f0f99401:/#触摸测试-音量/1 root@ca30f0f99401:/# cat >Test-卷/1测试消息!

  1. 在主机操作系统中,您可以通过检查容器获得卷的详细信息:

docker inspect ca30f0f99401 | grep -i --color -E '^|Vol'

代码语言:javascript
复制
"Mounts": 
        {
            "Name": "025835b8b47d282ec5f27c53b3165aee83ecdb626dc36b3b18b2e128595d9134",
            "Source": "/var/lib/docker/volumes/025835b8b47d282ec5f27c53b3165aee83ecdb626dc36b3b18b2e128595d9134/_data",
            "Destination": "/test-volume",
            "Driver": "local",
            "Mode": "",
            "RW": true 

"Image": "ubuntu:14.04",
    "Volumes": {
        "/test-volume": {} }
  1. 使用共享卷启动另一个容器,并检查共享文件夹/文件是否存在。

$ docker运行-it --名称=tsumage2--卷--from=tsumage1ubuntu:14.04/ bin / boot @60ff1dcebc44:/# ls bin boot dev等家庭库lib64媒体mnt opt root运行sbin srv sys测试--卷tmp usr root@60ff1dcebc44:/# cat测试--卷/1测试消息!

  1. 步骤3与一个新容器共享卷。
票数 4
EN

Stack Overflow用户

发布于 2015-10-06 07:30:26

通过编写一个专用的Dockerfile来创建一个数据卷容器,您将在其中:

  • COPY你的文件夹在里面
  • 将复制的本地容器路径文件夹声明为VOLUME

然后,docker create <imagename>和您得到一个(创建的)容器,只要您使用--volumes-from <containername>选项运行它们,就可以使用--volumes-from <containername>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32964120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档