我试图从撰写文件指定的同一网络上的另一个容器中连接到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