如何在docker-compose.yml中选择卷装入点?

如何在docker-compose.yml中选择卷装入点?,docker,dockerfile,docker-compose,Docker,Dockerfile,Docker Compose,我需要将卷/path/a从一个容器装载到另一个容器中的/path/b,但仅根据允许在卷部分写入的HOST:container或HOST:container:ro 您知道如何在docker compose.yml中实现这一点吗?您可以在主机上为两个容器创建一个绑定装载的卷 例如: mkdir -p /mnt/shared-volume docker run --name container1 -v /mnt/shared-volume:/path/a mycontainer docker run

我需要将卷/path/a从一个容器装载到另一个容器中的/path/b,但仅根据允许在卷部分写入的HOST:container或HOST:container:ro


您知道如何在docker compose.yml中实现这一点吗?

您可以在主机上为两个容器创建一个绑定装载的卷

例如:

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 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
与docker-compose.yml相同:

对于另一个容器:

volumes:
 - /mnt/shared-volume:/path/b
替代解决方案:

创建一个数据卷容器

例如:

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 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中访问它。正如我在/path/a的container1中有数据并希望在/path/b的container2中访问它之前所说的那样。如果我理解您的意思,那么数据应该位于/mnt/shared volume?我认为如果不重新启动container1并将装载绑定到另一个容器可以装载的主机卷,那么这是不可能的。或者您可以使用单独的数据卷容器。我错了吗?有人吗?请看:供进一步参考。如果你有任何问题,请告诉我!编辑了我的答案,其中包含有关创建数据卷容器的说明。但是,这会导致container1和container2上的所有卷都被共享。我仍然不明白您用它实现了什么。我想我只是不明白原来的问题。