如何在 docker-compose.yml 中 select 卷挂载点?

How to select volume mountpoint in docker-compose.yml?

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

关于如何在 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-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