基本上,我想在Docker容器中运行LAMP堆栈。 到目前为止,所有服务都在运行,但是当我尝试从PHP脚本中连接到mysql时,出现以下错误:
Warning: mysqli::__construct(): (HY000/2002): Connection refused
docker-compose.yml
version: '3.2'
services:
php:
build: ./php/
networks:
- backend
volumes:
- './public/:/var/www/html'
apache:
build: ./apache/
depends_on:
- php
- mysql
networks:
- frontend
- backend
ports:
- '8080:80'
volumes:
- './public/:/var/www/html'
mysql:
image: 'mysql:5.6.40'
ports:
- "3306:3306"
networks:
- backend
environment:
- MYSQL_DATABASES=test
- MYSQL_ROOT_PASSWORD=root
- MYSQL_HOST=127.0.0.1
- MYSQL_PORT=3306
- MYSQL_USER=user
- MYSQL_PASSWORD=password
- MYSQL_MY_DATABASE=test
networks:
frontend: null
backend: null
适用于PHP的Dockerfile:
FROM php:7.2.7-fpm-alpine3.7
RUN apk update; \
apk upgrade;
RUN docker-php-ext-install mysqli
我已经通过以下方法对其进行了测试:
docker exec -ti <mysql_docker> bash
并使用相同的凭据进入mysql模式:
mysql -uroot -h127.0.0.1 -P3306 -p
,并且没有问题。
那么什么可能导致上述连接被拒绝?