如何使用2.1DockerComposed语法创建共享命名卷。我希望将主机文件夹挂载为共享卷,并在关闭之间将主机上的数据持久化。
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/更新:我要寻找的关键是能够指定主机上共享卷的位置,即与旧方法相同,但使用命名容器
volumes:
- location/on/host:location/on/container发布于 2017-01-29 13:09:17
好吧,在对git问题清单进行了大量搜索之后,我们有:
实现如下所示,其中卷是顶级命令:
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编辑:
设备路径必须是绝对路径,->有很多与码头开发人员有关的内容
发布于 2017-01-30 00:42:44
“命名卷”和“指定主机上的挂载点”是相互排斥的选项。这样做可能是可能的(就像一些人在您链接的Github问题中尝试了一系列命令一样),但它实际上不是一个常见的用例,因此不应该需要它,甚至不应该推荐它。
命名卷的意义在于能够持久化&重用(挂载到另一个容器)数据,方法是给数据卷取一个名称,这样您就可以知道其中包含了什么。这样,当您启动另一个容器时,您可以执行类似于-v my-mysql-data:/var/lib/mysql的操作,而无需在主机上指定挂载点。如果要为主机上的卷指定挂载点,则不需要指定卷,因为您已经有了名称(路径),甚至可以检查内容。“名称”是“主机挂载点”。
https://stackoverflow.com/questions/41920208
复制相似问题