phpmyadmin/phpmyadmin注意:phpMyAdmin 已被收录到 Docker Hub 官方仓库,您可以使用该官方仓库或旧版 phpMyAdmin 仓库 进行 Docker 安装。旧仓库仍在维护以方便未迁移的用户。
phpMyAdmin 是 MySQL 和 MariaDB 的 Web 管理界面。本 Docker 镜像基于 Alpine、Apache 和 PHP FPM 构建,提供开箱即用的 phpMyAdmin 部署方案,支持通过 Web 界面(默认 http://localhost:8080)进行 MySQL 数据库管理。
_FILE 变量读取敏感信息)、隐藏 PHP 版本等config.user.inc.php 实现高级配置PMA_ABSOLUTE_URI 配置正确路径以下标签可用:
latest、fpm、fpm-alpine:最新稳定版本5、5-fpm、5-fpm-alpine)5.0、5.0-fpm、5.0-fpm-alpine)5.0.0、5.0.0-fpm、5.0.0-fpm-alpine),部分版本可能包含 Docker 专用修订号(如 4.9.2-1)完整标签列表见 Docker Hub。
| 变体 | 说明 |
|---|---|
apache | 包含完整 Apache 服务器和 PHP,开箱即用(默认变体) |
fpm | 仅启动 PHP FPM 进程,需配合外部 Web 服务器,包含更多工具(体积较大) |
fpm-alpine | 基于 Alpine Linux,体积最小,仅包含 PHP FPM,适合资源受限环境 |
phpMyAdmin 使用 MySQL 服务器的凭证进行连接。官方 MySQL 和 MariaDB 镜像通过以下环境变量定义凭证:
MYSQL_ROOT_PASSWORD:必填,设置 root 超级用户密码MYSQL_USER/MYSQL_PASSWORD:可选,创建自定义用户并设置密码将 phpMyAdmin 链接到 Docker 中运行的 MySQL/MariaDB 容器(假设数据库容器名为 mysql_db_server):
shdocker run --name myadmin -d --link mysql_db_server:db -p 8080:80 phpmyadmin
访问 http://localhost:8080 即可管理数据库。
通过 PMA_HOST(和可选的 PMA_PORT)指定外部 MySQL 服务器地址和端口:
shdocker run --name myadmin -d -e PMA_HOST=dbhost -e PMA_PORT=3306 -p 8080:80 phpmyadmin
设置 PMA_ARBITRARY=1 允许在登录页面手动输入任意 MySQL 服务器地址:
shdocker run --name myadmin -d -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin
以下示例启动 MariaDB 和 phpMyAdmin(支持任意服务器连接):
yamlversion: '3.1' services: db: image: mariadb:10.3 restart: always environment: MYSQL_ROOT_PASSWORD: notSecureChangeMe # 替换为安全密码 phpmyadmin: image: phpmyadmin restart: always ports: - 8080:80 environment: - PMA_ARBITRARY=1 # 允许连接任意服务器
启动命令:
shdocker-compose up -d
使用项目提供的 docker-compose.testing.yml 运行测试环境(需先克隆 phpmyadmin/docker 仓库):
shdocker-compose -f docker-compose.testing.yml up phpmyadmin
通过挂载 config.user.inc.php 文件添加高级配置(如配置存储设置):
shdocker run --name myadmin -d \ --link mysql_db_server:db \ -p 8080:80 \ -v /本地路径/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php \ phpmyadmin
配置文件参考:phpMyAdmin 文档。
设置 PMA_ABSOLUTE_URI 为反向代理暴露的完整 URL(如 [***]):
shdocker run --name myadmin -d \ -e PMA_HOST=dbhost \ -e PMA_ABSOLUTE_URI=[***] \ -p 8080:80 \ phpmyadmin
| 变量名 | 说明 |
|---|---|
PMA_ARBITRARY | 设为 1 时允许连接任意 MySQL 服务器 |
PMA_HOST | MySQL 服务器地址/主机名 |
PMA_VERBOSE | MySQL 服务器的显示名称 |
PMA_PORT | MySQL 服务器端口(默认 3306) |
PMA_HOSTS | 逗号分隔的多服务器地址列表(如 host1,host2) |
PMA_VERBOSES | 逗号分隔的多服务器显示名称列表(与 PMA_HOSTS 对应) |
PMA_PORTS | 逗号分隔的多服务器端口列表(与 PMA_HOSTS 对应) |
PMA_USER/PMA_PASSWORD | 仅用于 config 认证方式的默认用户名/密码 |
| 变量名 | 说明 |
|---|---|
PMA_ABSOLUTE_URI | phpMyAdmin 的完整 URL(反向代理场景必需) |
PMA_CONFIG_BASE64 | base64 编码的 config.inc.php 内容,用于覆盖默认配置 |
PMA_USER_CONFIG_BASE64 | base64 编码的 config.user.inc.php 内容,用于覆盖用户配置 |
PMA_CONTROLHOST/PMA_CONTROLPORT | 配置存储数据库的地址/端口 |
PMA_PMADB | 配置存储数据库名称(如 phpmyadmin) |
PMA_CONTROLUSER/PMA_CONTROLPASS | 配置存储数据库的访问用户/密码 |
PMA_QUERYHISTORYDB | 设为 true 时启用 SQL 历史记录存储(需配置存储数据库) |
PMA_QUERYHISTORYMAX | SQL 历史记录最大条目数(默认 25) |
| 变量名 | 说明 |
|---|---|
MAX_EXECUTION_TIME | PHP 执行超时时间(秒,默认 600),如 300 |
MEMORY_LIMIT | PHP 内存限制(默认 512M),如 1G |
UPLOAD_LIMIT | 上传文件大小限制(默认 2048K),如 10M |
HIDE_PHP_VERSION | 设为任意值(如 true)隐藏 PHP 版本(expose_php = Off) |
以下变量支持通过 _FILE 后缀从文件读取值(优先级高于直接变量):
PMA_PASSWORD_FILEMYSQL_ROOT_PASSWORD_FILEMYSQL_PASSWORD_FILEPMA_HOSTS_FILEPMA_HOST_FILEPMA_CONTROLPASS_FILE示例(从文件读取密码):
shdocker run --name myadmin -d \ -e PMA_PASSWORD_FILE=/run/secrets/db_password.txt \ -p 8080:80 \ phpmyadmin
更多详细文档:phpMyAdmin Docker 安装指南

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务