【问题标题】:How to select volume mountpoint in docker-compose.yml?如何在 docker-compose.yml 中选择卷挂载点?
【发布时间】:2015-10-26 17:34:06
【问题描述】:

我需要将卷/path/a 从一个容器挂载到另一个容器中的/path/b,但根据documentation,只有HOST:CONTAINERHOST:CONTAINER:ro 允许写入VOLUMES 部分。

任何想法如何在 docker-compose.yml 中做到这一点?

【问题讨论】:

  • 在主机上创建一个卷并在上面挂载两个容器?
  • 我在 /path/a 上的 container1 中有数据,并希望在 /path/b 上的 container2 中访问它。

标签: docker dockerfile docker-compose


【解决方案1】:

您可以在主机上创建一个卷,并为两个容器绑定挂载。

例子:

mkdir -p /mnt/shared-volume
docker run --name container1 -v /mnt/shared-volume:/path/a mycontainer
docker run --name container2 -v /mnt/shared-volume:/path/b mycontainer

docker-compose.yml相同:

volumes:
 - /mnt/shared-volume:/path/a

对于另一个容器:

volumes:
 - /mnt/shared-volume:/path/b

替代解决方案:

创建数据卷容器!

例子:

docker run --name datacontainer -v /mnt/shared-volume mycontainer /bin/true
docker run --name container1 --volumes-from datacontainer mycontainer
docker run --name container2 --volumes-from datacontainer mycontainer

【讨论】:

  • 正如我在 /path/a 上的 container1 中有数据并希望在 /path/b 上的 container2 中访问它之前所回答的那样。如果我理解你,数据应该在 /mnt/shared-volume?
  • 如果不重新启动 container1 并将绑定安装到另一个容器可以安装的主机卷,我认为这是不可能的。或者你可以做一个单独的数据卷容器。我在这里错了吗?有人吗?
  • 请参阅:docs.docker.com/userguide/dockervolumes 以获取更多参考。如果您有任何问题,请告诉我!
  • 用创建数据卷容器的说明编辑了我的答案。但是,这会导致 container1 和 container2 上的所有卷都被共享。
  • 我仍然不明白你用它取得了什么成就。我想我只是不明白原来的问题。
猜你喜欢
  • 2022-10-18
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多