可能这个问题之前被问过几次,但我没有得到可以解决我的问题的有效答案。
我尝试使用docker-compose
在不同容器上的docker中运行phpmyadmin,但总是出现以下错误:
#2002 - Connection refused — The server is not responding (or the local server's socket is not correctly configured).
我的 docker compose 文件包含以下代码:
version: "2"
services:
web:
build: .
ports:
- "80:80"
networks:
- web
volumes:
- .:/code
restart: always
db:
image: "mysql:5"
volumes:
- ./mysql:/etc/mysql/conf.d
environment:
MYSQL_ROOT_PASSWORD: toor
MYSQL_DATABASE: phpapp
networks:
- web
restart: always
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_PORT: 3306
PMA_HOST: db
PMA_USER: root
PMA_PASSWORD: toor
ports:
- "8000:80"
restart: always
networks:
- web
networks:
web:
driver: bridge
在 web
容器中,我尝试连接数据库,它工作正常,但 phpmyadmin
连接出现问题
如有任何帮助,我们将不胜感激。 :)
最佳答案
够有趣的,我已经运行了你的撰写文件并且可以访问 phpmyadmin 来自主机。
必须将端口 8000 更改为 8004(端口 8000 在我的主机上被占用)。
如果您的数据库容器启动速度不够快,无法让 phpmyadmin 连接,我建议将 depends_on 添加到 phpmyadmin 服务中。确保 db 在 phpmyadmin 之前启动。
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_PORT: 3306
PMA_HOST: db
PMA_USER: root
PMA_PASSWORD: toor
ports:
- "8004:80"
restart: always
depends_on:
- db
networks:
- web
如果问题仍然存在,请显示来自 docker-compose up
的日志。
关于php - 无法使用 docker compose 将 phpmyadmin 连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48682281/