Php 如何正确设置数据卷容器?
我想设置一个数据卷容器与另一个LAMP容器一起工作,但我正开始与Docker一起工作,所以我有一些疑问 因此,我将运行两个容器,我们将其命名为(作为一个示例):Php 如何正确设置数据卷容器?,php,nginx,docker,docker-compose,Php,Nginx,Docker,Docker Compose,我想设置一个数据卷容器与另一个LAMP容器一起工作,但我正开始与Docker一起工作,所以我有一些疑问 因此,我将运行两个容器,我们将其命名为(作为一个示例): 灯箱 数据容器 我知道一次运行多个容器的唯一方法是使用Docker Compose,但我不知道如何设置Compose.yml文件 比如说,灯容器有以下存储数据的目录: /data/www # meant to contain web content /data/www/default # root directory for the
- 灯箱
- 数据容器
Compose.yml
文件
比如说,灯容器
有以下存储数据的目录:
/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//container\u 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
/data/www=>/home//container\u files/data/www
/data/www/default=>/home//container\u files/data/www/default
/data/logs/=>/home//container\u文件/data/logs
/data/tmp/php/=>/home//container\u files/data/php
有人能用compose.yml
示例文件给我指出正确的方向吗?我已经读过了,但让我感到困惑,因为我通常使用虚拟机,并且在很多方面与容器不同
注意:我应该补充一点,这是针对一个主机中的一个用户,而不是针对一个主机中的多个用户。因此,每个想使用此设置的人都应该在其主机下拥有自己的设置。数据容器卷因引入命名卷而被弃用。命名卷具有与数据容器相同的优点,但可以单独管理,使您可以更轻松地将卷作为数据而不是伪容器进行管理 下面是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
的只读卷。由于引入了命名卷,数据容器卷已被弃用。命名卷具有与数据容器相同的优点,但可以单独管理,使您可以更轻松地将卷作为数据而不是伪容器进行管理
下面是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
的只读卷。您不能基于此在各自的目录和链接中为每个用户创建compose.yml
注意,我没有这样做,只是问了一下。@Pogrindis对不起,我没有跟踪你,所以每个容器将作为不同的用户运行,将compose.yml
路由更改为/home/$user/compose.yml
并简单地使用yaml中的相对目录结构,如/data/logs/
等?只是一个想法@Pogrindis仍然不确定您的解决方案,将只是一个用户,而这将是我的,至少在我的电脑上。我正在尝试构建此解决方案,以便其他人也可以使用相同的解决方案,但不要认为每台电脑有多个用户,请逐个PCAH思考抱歉,我误解了这个问题!那么这有关系吗您不能在各自的目录和链接中为每个用户创建一个compose.yml
,基于此吗?::注意,我没有这样做,只是问了一下。@Pogrindis对不起,我没有跟踪你,所以每个容器将作为不同的用户运行,将compose.yml
路由更改为/home/$user/compose.yml
并简单地使用yaml中的相对目录结构,如/data/logs/
等?只是一个想法@Pogrindis仍然不确定您的解决方案,将只是一个用户,而这将是我的,至少在我的电脑上。我正在尝试构建此解决方案,以便其他人也可以使用相同的解决方案,但不要认为每台电脑有多个用户,请逐个PCAH思考抱歉,我误解了这个问题!那么这有关系吗