【发布时间】:2018-10-23 19:31:21
【问题描述】:
我正在尝试为 Nginx + PHP(Laravel) + MySQL 构建 docker compose 容器,但我不断收到 Connection denied 错误
docker-compose.yml
version: "3"
services:
nginx:
image: nginx:latest
ports:
- '8080:80'
volumes:
- ./nginx:/etc/nginx/conf.d
- ./logs/nginx:/var/logs/nginx
- ./apps:/var/www/html
depends_on:
- php
restart: always
php:
image: laradock/php-fpm:2.2-7.2
volumes:
- ./apps:/var/www/html
restart: always
mysql:
image: mariadb
ports:
- '33060:3306'
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
restart: always
在 ./apps 我有一个全新的 Laravel 应用程序,带有基本的 SQL 设置
所有容器都运行没有错误,我可以使用连接到 MySQL 容器
mysql -u 127.0.0.1 -P 33060 -u root -p
但是当我尝试从浏览器访问或直接 ssh 进入 php 容器时,我不断收到错误 2002。
我在服务器上运行了 nginx 和 mysql,所以我使用 8080 和 33060 端口,不知道是不是这个问题。
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=secret
感谢您的帮助。
【问题讨论】:
-
我怀疑你的 laravel 应用程序正试图通过端口 3306 访问 mysql,而它被 mysql 容器暴露为 33060。确保 php 应用程序配置为使用端口 33060 进行 mysql 连接。