You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Docker配置PHPMyAdmin?求docker-compose.yml配置方法

在docker-compose.yml中配置PHPMyAdmin的步骤

下面是一套完整的配置方案,包含数据库(以MySQL为例)和PHPMyAdmin的联动配置,直接套用就能用:

完整docker-compose.yml示例

version: '3.8'

services:
  # 数据库服务(MySQL)
  db:
    image: mysql:8.0
    container_name: mysql_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password  # 替换成你的root密码
      MYSQL_DATABASE: your_database_name      # 可选:预先创建的数据库
      MYSQL_USER: your_db_user                # 可选:额外创建的用户
      MYSQL_PASSWORD: your_user_password      # 对应用户的密码
    volumes:
      - mysql_data:/var/lib/mysql  # 持久化数据库数据

  # PHPMyAdmin服务
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    container_name: phpmyadmin
    restart: always
    ports:
      - "8080:80"  # 本地8080端口映射到容器内80端口
    environment:
      PMA_HOST: db  # 关联上面的数据库服务名,必须和db服务的name一致
      PMA_PORT: 3306  # MySQL默认端口,不用改除非你改了数据库端口
      PMA_USER: root  # 登录PHPMyAdmin用的数据库用户名
      PMA_PASSWORD: your_root_password  # 对应数据库用户的密码
    depends_on:
      - db  # 确保数据库服务先启动

volumes:
  mysql_data:  # 定义数据卷,用于持久化MySQL数据

关键参数说明

  • PMA_HOST: 指定PHPMyAdmin要连接的数据库服务名,必须和docker-compose里的数据库服务名称(这里是db)完全一致,Docker内部会通过服务名做DNS解析。
  • ports: 格式是本地端口:容器端口,你可以把8080改成任意未被占用的本地端口,比如8888:80。
  • restart: always: 确保容器在服务器重启或意外停止后自动启动。
  • depends_on: 能保证数据库服务先启动,但不代表数据库完全初始化完成,如果遇到连接失败,稍等几秒再刷新页面即可。

启动和访问

  1. 把上面的配置保存为docker-compose.yml,替换掉里面的密码、数据库名等自定义内容。
  2. 在终端进入配置文件所在目录,执行命令:
docker-compose up -d
  1. 打开浏览器访问 http://localhost:8080,用你设置的数据库用户名和密码登录即可。

注意事项

  • 如果用的是MariaDB,只需要把db服务的image改成mariadb:latest,其他配置基本通用。
  • 生产环境不要把密码直接写在配置文件里,可以用环境变量文件(.env)管理,比如把MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}写入配置,再在.env文件里定义DB_ROOT_PASSWORD=xxx。
  • 如果数据库服务修改了默认端口(比如改成3307),要同步修改PMA_PORT的值,同时数据库服务也要加上ports: - "3307:3306"的映射。

内容的提问来源于stack exchange,提问作者Anish Rai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 09:35:17