如何在 docker compose 中为每个容器创建单独的卷
How to create separate volumes for each container in docker compose
我创建了一个 docker
图像,我想为其 运行 多个容器。这个 docker 图像依赖于一些对所有容器都保持相同的东西,但唯一的区别是容器的配置。
version: '2.4'
services:
s1:
image: testdockerimg:latest
volumes:
- /home/andrew/Documents/CVAI/configs/s1config.json:/home/andrew/Documents/CVAI/configs/config.json
- /home/andrew/Documents/CVAI:/home/andrew/Documents/CVAI/
restart: always
mem_limit: 2g
s2:
image: testdockerimg:latest
volumes:
- /home/andrew/Documents/CVAI/configs/s2config.json:/home/andrew/Documents/CVAI/configs/config.json
- /home/andrew/Documents/CVAI:/home/andrew/Documents/CVAI/
restart: always
mem_limit: 2g
在上面的文件中,您可以看到我为 s1
s2
容器提供了 s1config
和 s2config
,但其余部分保持不变,这是为什么 /home/andrew/Documents/CVAI
两个容器的体积相同。因此,docker 在两个容器之间共享容量,因此所有数据都在容器之间混合而不是分开。
有什么方法可以将多个容器之间的卷分开。? 我不想为此创建多个 docker。请帮忙。谢谢
编辑
已更新 docker-撰写文件:
version: '2.4'
services:
s1:
image: testdockerimg:latest
volumes:
- /home/andrew/Documents/s1/configs/s1config.json:/home/andrew/Documents/CVAI/configs/config.json
- /home/andrew/Documents/s1:/home/andrew/Documents/CVAI/
restart: always
mem_limit: 2g
s2:
image: testdockerimg:latest
volumes:
- /home/andrew/Documents/s2/configs/s2config.json:/home/andrew/Documents/CVAI/configs/config.json
- /home/andrew/Documents/s2:/home/andrew/Documents/CVAI/
restart: always
mem_limit: 2g
在主机上,每个容器都应该有自己的卷。它们可以以相同的路径安装在容器中。每个容器都可以使用相同的图像,并且会在主机上以相同的名称看到它的专用卷。
我创建了一个 docker
图像,我想为其 运行 多个容器。这个 docker 图像依赖于一些对所有容器都保持相同的东西,但唯一的区别是容器的配置。
version: '2.4'
services:
s1:
image: testdockerimg:latest
volumes:
- /home/andrew/Documents/CVAI/configs/s1config.json:/home/andrew/Documents/CVAI/configs/config.json
- /home/andrew/Documents/CVAI:/home/andrew/Documents/CVAI/
restart: always
mem_limit: 2g
s2:
image: testdockerimg:latest
volumes:
- /home/andrew/Documents/CVAI/configs/s2config.json:/home/andrew/Documents/CVAI/configs/config.json
- /home/andrew/Documents/CVAI:/home/andrew/Documents/CVAI/
restart: always
mem_limit: 2g
在上面的文件中,您可以看到我为 s1
s2
容器提供了 s1config
和 s2config
,但其余部分保持不变,这是为什么 /home/andrew/Documents/CVAI
两个容器的体积相同。因此,docker 在两个容器之间共享容量,因此所有数据都在容器之间混合而不是分开。
有什么方法可以将多个容器之间的卷分开。? 我不想为此创建多个 docker。请帮忙。谢谢
编辑
已更新 docker-撰写文件:
version: '2.4'
services:
s1:
image: testdockerimg:latest
volumes:
- /home/andrew/Documents/s1/configs/s1config.json:/home/andrew/Documents/CVAI/configs/config.json
- /home/andrew/Documents/s1:/home/andrew/Documents/CVAI/
restart: always
mem_limit: 2g
s2:
image: testdockerimg:latest
volumes:
- /home/andrew/Documents/s2/configs/s2config.json:/home/andrew/Documents/CVAI/configs/config.json
- /home/andrew/Documents/s2:/home/andrew/Documents/CVAI/
restart: always
mem_limit: 2g
在主机上,每个容器都应该有自己的卷。它们可以以相同的路径安装在容器中。每个容器都可以使用相同的图像,并且会在主机上以相同的名称看到它的专用卷。