php - 无法使用 docker compose 将 phpmyadmin 连接到数据库

标签 php mysql docker phpmyadmin docker-compose

可能这个问题之前被问过几次,但我没有得到可以解决我的问题的有效答案。

我尝试使用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/

相关文章:

php - 在我的 WordPress 导航菜单中插入设计元素

php - 在简单的 php 应用程序中访问 apache 中的 php 页面时出现 404 错误?

php - Javascript 或 Jquery : Getting key inputs without focus

php - "Lost connection to MySQL server"由于各种原因

docker - 在 docker 容器中找不到“make”命令

docker - 是否可以同时使用 docker swarm 和 consul 后端进行 traefik 配置?

javascript - 删除前如何在 toastr 中要求确认

mysql - Django 选择其中字段是字符串和列值的串联

mysql - 在 select 语句中合并两个相似的聚合函数

docker - Kibana docker 与外部 Elasticsearch 组合