我试图从撰写文件指定的同一网络上的另一个容器中连接到mysql容器.
version: "2"
services:
web:
build:
context: .
dockerfile: Nginx/Dockerfile
ports:
- "8080:80"
volumes:
- ./data:/srv
PHP:
build:
context: .
dockerfile: PHP-fpm/Dockerfile
volumes:
- ./data:/srv
MysqL:
image: MysqL
environment:
- MysqL_ALLOW_EMPTY_PASSWORD=yes
- MysqL_USER=dummy_user
- MysqL_PASSWORD=12345
我不确定如果尝试从PHP容器连接到MysqL容器,连接参数将是什么.
具体来说,来自同一docker-compose网络的另一个容器中MysqL容器的主机和端口是什么?
我试过主机:MysqL端口:3306,但这似乎不起作用.
最佳答案
您应该链接容器.将端口部分添加到MysqL容器,并将链接部分添加到PHP容器.
version: "2"
services:
web:
build:
context: .
dockerfile: Nginx/Dockerfile
ports:
- "8080:80"
volumes:
- ./data:/srv
PHP:
build:
context: .
dockerfile: PHP-fpm/Dockerfile
links:
- MysqL:MysqL
volumes:
- ./data:/srv
MysqL:
image: MysqL
ports:
- "3306:3306"
environment:
- MysqL_ALLOW_EMPTY_PASSWORD=yes
- MysqL_USER=dummy_user
- MysqL_PASSWORD=12345
使用该配置,您将能够使用MysqL:3306从PHP访问MysqL容器
一点文档:https://docs.docker.com/compose/networking/#updating-containers