我想设置一个数据卷容器来与另一个LAMP容器一起工作,但是我开始使用Docker,所以我有一些疑问。
因此,我将运行两个容器,让我们将其命名为(正如一个例子):
我知道一次运行多个容器的唯一方法是使用Docker,但我不知道如何设置compose.yml
文件。
假设lamp-container
有以下目录来存储数据:
/data/www # meant to contain web content
/data/www/default # root directory for the default vhost
/data/logs/ # Nginx, PHP logs
/data/tmp/php/ # PHP temp directories
我希望将它们分别映射到/home/<username>/container_files
下主机上的本地目录(这是正在运行docker的主机上的本地目录)。例如:
/data/www => /home/<username>/container_files/data/www
/data/www/default => /home/<username>/container_files/data/www/default
/data/logs/ => /home/<username>/container_files/data/logs
/data/tmp/php/ => /home/<username>/container_files/data/php
通过一个compose.yml
示例文件,我能指出正确的方向吗?我读过文档,但我很困惑,因为我通常使用VM,并且在许多方面与容器不同。
注意:我应该补充一点,这是一个主机中的一个用户,而不是一个主机中的多个用户。因此,每个想要使用这个设置的人都应该在其主机下拥有自己的安装程序。
发布于 2016-09-21 16:09:18
随着命名卷的引入,数据容器卷已不再受欢迎。命名卷与数据容器具有相同的优点,但它们是单独管理的,可以让您更容易地将卷管理为数据而不是伪容器。
下面是一个用于挂载两个命名卷和另一个网络的docker-compose.yml的示例,您可能会删除大多数不适用于您自己的场景的行:
version: '2'
volumes:
vol-name-1:
driver: local
vol-name-2:
driver: local
networks:
internal1:
driver: bridge
services:
service-1:
build: .
image: my-service:latest
volumes:
- ./auth:/my-app/auth:ro
- ./host-conf:/my-app/conf
- vol-name-1:/my-app/data-1
- vol-name-2:/my-app/data-2
networks:
- default
- internal1
ports:
- "8080:80"
entrypoint: "my-start.sh"
在上面的示例中,它还挂载了两个主机卷(绑定挂载),并展示了如何使用:ro
在auth卷上挂载只读卷。
https://stackoverflow.com/questions/39620863
复制相似问题