【发布时间】:2021-10-10 09:33:27
【问题描述】:
我已将卷 shared 安装到我的服务 main。
现在我正在尝试将相同的卷挂载到另一个容器client,该容器以docker-compose up client 从main 容器(Docker-in-Docker)中开始:
version: "3.8"
# set COMPOSE_PROJECT_NAME=default before running `docker-compose up main`
services:
main:
image: rbird/docker-compose:python-3.9-slim-buster
privileged: true
entrypoint: docker-compose up client # start client
volumes:
- //var/run/docker.sock:/var/run/docker.sock
- ./docker-compose.yml:/docker-compose.yml
- ./shared:/shared
client:
image: alpine
entrypoint: sh -c "ls shared*"
profiles:
- do-not-run-directly
volumes:
- /shared:/shared1
- ./shared:/shared2
我得到的输出是:
[+] Running 2/2
- Network test_default Created 0.0s
- Container test_main_1 Started 0.9s
Attaching to main_1
Recreating default_client_1 ... done
Attaching to default_client_1
main_1 | client_1 | shared1:
main_1 | client_1 |
main_1 | client_1 | shared2:
main_1 | default_client_1 exited with code 0
main_1 exited with code 0
因此,/shared2 和 /shared2 文件夹是空的,尽管它们包含主机目录和 main 容器中的文件。
如何在容器之间重新共享卷?
或者有没有办法在所有容器之间共享一个主机目录,即使是由其中一个容器启动的容器?
【问题讨论】:
标签: docker docker-compose docker-in-docker