我是Docker的新手。
我读过最好在每个容器中保留一个应用程序。
我需要运行网络应用程序(LAMP 堆栈(。所以我找到了运行PHP + Apache的容器。
现在我需要设置一个 mysql 容器。但我不确定这样做的正确方法是什么。
我读到可以将多个容器连接在一起。
这个想法是让它在尝试在本地连接到 mysql 数据库时传递到运行 PHP + Apache 的容器。
但将所有本地连接重定向到另一个容器。
我的另一个想法是为所有连接应该去哪里的主机提供环境变量。在这种情况下,我需要拥有可公开访问的 mysql 服务器,但我需要将其保密并且只能在本地访问。
您能否建议一个更好的选择来选择我的情况?
谢谢
使用 docker-compose:
例如,从这个docker-compose.yml
开始。把它放在与你的php Dockerfile相同的目录中:
version: "3"
services:
web:
build: .
ports:
- 8000:80
depends_on:
- db
db:
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=something
volumes:
- ./mysql-data:/var/lib/mysql
然后:
docker-compose up
因此,多亏了Docker网络,您可以从PHP中指向如下:db:3306
。