Docker MySQL无法连接到容器

我有用于创建mysql映像的docker-

compose文件,并将端口公开给3306,但是当我尝试安装CMS时,出现了无法连接数据库的错误。我尝试扫描端口3306,并向我显示它已打开,因此mysql正在运行。

为什么两个Docker容器彼此看不到?

这是我的docker-compose文件:

phpfpm:

restart: always

extends:

file: php-fpm-5.6.yml

service: phpfpm

links:

- db:db

nginx:

restart: always

image: nginx

ports:

- "8000:80"

links:

- phpfpm:phpfpm

volumes:

- ./nginx/vhost.conf:/etc/nginx/conf.d/default.conf

- ./app:/var/www/html

- ./log/nginx:/var/log/nginx

db:

restart: always

image: mysql

ports:

- "3306:3306"

environment:

MYSQL_ROOT_PASSWORD: 123456

MYSQL_USER: user

MYSQL_PASSWORD: password

MYSQL_DATABASE: database

回答:

要连接到数据库,请使用您作为主机名提供的链接/别名。因此,您的CMS可以使用db主机名和端口3306 连接到MySQL 。

您将无法连接到localhost或127.0.0.1,因为“ localhost”是 每个容器中 的localhost

,因此,在phpfpm容器中使用“ localhost”将尝试连接到phpfpm容器中的MySQL数据库,但是那里没有服务器在运行。

请注意,如果您仅从链接的容器内部连接到数据库,则不必 发布"3306":"3306")MySQL端口。发布端口会在公共网络接口(可能是“

Internet”)上公开MySQL。

以上是 Docker MySQL无法连接到容器 的全部内容, 来源链接: utcz.com/qa/430896.html

回到顶部