Con*_*sed 5 docker docker-compose docker-swarm docker-machine
我试图从撰写文件指定的同一网络上的另一个容器中连接到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
Run Code Online (Sandbox Code Playgroud)
我不确定如果尝试从php容器连接到mysql容器,连接参数将是什么。
具体而言,是从什么为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
Run Code Online (Sandbox Code Playgroud)
使用该配置,您将能够使用mysql:3306从php访问mysql容器
一些文档:https : //docs.docker.com/compose/networking/#updating-containers
And*_*rei -1
您没有共享 mysql 端口
将 docker-compose.yml 添加到 mysql 服务:
ports:
- "3306:3306"
Run Code Online (Sandbox Code Playgroud)
UPD
尝试设置 mysql 容器的环境
MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: dev
MYSQL_PASSWORD: 123456
MYSQL_DATABASE: myapp
Run Code Online (Sandbox Code Playgroud)
和
$link = mysqli_connect("mysql", "dev", "123456", "myapp");
Run Code Online (Sandbox Code Playgroud)
应该可以正常工作
| 归档时间: |
|
| 查看次数: |
3840 次 |
| 最近记录: |