我试图从同一个网络中的另一个容器中连接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容器,我不太确定连接参数是什么。
具体来说,mysql容器的主机和端口来自同一个坞-组合网络的另一个容器?
我尝试过主机: mysql端口: 3306,但这似乎行不通。
发布于 2017-08-17 15:06:25
你应该把集装箱连接起来。将端口部分添加到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
发布于 2017-08-17 15:05:01
您不共享mysql的端口
将您的docker-compose.yml添加到mysql服务中:
ports:
- "3306:3306"UPD
尝试设置mysql容器的环境。
MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: dev
MYSQL_PASSWORD: 123456
MYSQL_DATABASE: myapp和
$link = mysqli_connect("mysql", "dev", "123456", "myapp");应该正常工作吗?
https://stackoverflow.com/questions/45738592
复制相似问题