首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用与主机共享的数据创建命名的Docker数据卷

如何使用与主机共享的数据创建命名的Docker数据卷
EN

Stack Overflow用户
提问于 2017-01-29 11:09:20
回答 2查看 1.3K关注 0票数 2

如何使用2.1DockerComposed语法创建共享命名卷。我希望将主机文件夹挂载为共享卷,并在关闭之间将主机上的数据持久化。

代码语言:javascript
复制
web:
< ----- remainder of service defn omitted for clarity ----->
  # Load the external volume 'pgdata' into the folder /var.. on the host
  volumes:
    - pg-data:/var/lib/postgresql/data


# Top level volumes key allows sharing of volume across multiple services
# Volumes defined as name: <path on host>
volumes:
  # Volume named pgdata is located here on the host
  pg-data: #/var/lib/postgresql/data/
  # App data volume
  app-data: #./scribl/
  # Static files volume
  static-data: #./static/

更新:我要寻找的关键是能够指定主机上共享卷的位置,即与旧方法相同,但使用命名容器

代码语言:javascript
复制
volumes:
  - location/on/host:location/on/container
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-29 13:09:17

好吧,在对git问题清单进行了大量搜索之后,我们有:

Github问题

实现如下所示,其中卷是顶级命令:

代码语言:javascript
复制
volumes:
  # Volume named pgdata is located here on the host
  pg-data: #/var/lib/postgresql/data/
    driver: local
    driver_opts:
      device: /var/lib/postgres/ # this is the mount path on the host
      o: bind

编辑:

设备路径必须是绝对路径,->有很多与码头开发人员有关的内容

票数 4
EN

Stack Overflow用户

发布于 2017-01-30 00:42:44

“命名卷”和“指定主机上的挂载点”是相互排斥的选项。这样做可能是可能的(就像一些人在您链接的Github问题中尝试了一系列命令一样),但它实际上不是一个常见的用例,因此不应该需要它,甚至不应该推荐它。

命名卷的意义在于能够持久化&重用(挂载到另一个容器)数据,方法是给数据卷取一个名称,这样您就可以知道其中包含了什么。这样,当您启动另一个容器时,您可以执行类似于-v my-mysql-data:/var/lib/mysql的操作,而无需在主机上指定挂载点。如果要为主机上的卷指定挂载点,则不需要指定卷,因为您已经有了名称(路径),甚至可以检查内容。“名称”是“主机挂载点”。

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

https://stackoverflow.com/questions/41920208

复制
相关文章

相似问题

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