快速参考
-
由……维护: (注:原文中“Maintained by:”后面应该会有具体的维护者信息,若有完整内容,翻译会更加准确。这里仅根据给定的部分进行了翻译。)
phpMyAdmin (该词通常不进行逐字翻译,直接保留原样) -
哪里可以获得帮助:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
支持的标签及各自的 Dockerfile 链接
快速参考(续)
-
支持的架构:(更多信息)
amd64,arm32v5,arm32v6,arm32v7,arm64v8,i386,mips64le,ppc64le,s390x -
已发布的图像伪影细节:
repo-info repo 的repos/phpmyadmin/目录(历史记录)
(图像元数据、传输大小等) -
图像更新:
官方图像仓库的library/phpmyadmin标签
官方图像存储库的library/phpmyadmin文件(历史记录) -
此描述的来源:
文档库的phpmyadmin/目录(历史记录)
什么是 phpMyAdmin?
phpMyAdmin 是一个用 PHP 编写的免费软件工具,旨在通过网络处理 MySQL 的管理。phpMyAdmin 支持对 MySQL 和 MariaDB 的广泛操作。常用操作(管理数据库、表、列、关系、索引、用户、权限等)可以通过用户界面执行,同时您仍然能够直接执行任何 SQL 语句。
使用 Alpine、Apache 和 PHP FPM 运行 phpMyAdmin。

如何使用此图像
以下所有示例将在 http://localhost:8080 上为您带来 phpMyAdmin,您可以在此愉快地进行 MySQL 管理。
凭据;资格证书;证件
phpMyAdmin 使用您的 MySQL 服务器凭据进行连接。请检查您相应的数据库服务器映像,以获取有关默认用户名和密码的信息,或了解如何在安装过程中指定您自己的自定义凭据。
官方的 MySQL 和 MariaDB 镜像使用以下环境变量来定义这些:
MYSQL_ROOT_PASSWORD- 此变量为必填项,用于指定将为root超级用户帐户设置的密码。MYSQL_USER,MYSQL_PASSWORD- 这些变量是可选的,结合使用可创建新用户并设置该用户的密码。
支持的 Docker Hub 标签
以下标签可用:
latest、fpm和fpm-alpine始终是最新发布的版本- 主要版本,例如
5、5-fpm和5-fpm-alpine - 特定的小版本,例如
5.0、5.0-fpm和5-fpm-alpine - 特定的补丁版本,例如
5.0.0、5.0.0-fpm和5.0.0-fpm-alpine。请注意,在极少数情况下,可能会有一个中间的“仅 Docker”版本发布,例如 4.9.2 - 1
在 Docker Hub 可获取完整的标签列表
图像变体
我们提供三种变体:
- “apache”包含一个带有 PHP 的完整 Apache 网络服务器,并包含开箱即用所需的一切。当仅请求版本号时,这是默认情况。
- “fpm”仅启动一个 PHP FPM 容器。如果您已经有一个单独的网络服务器,请使用此变体。它包含更多工具,因此比“fpm - alpine”变体的镜像更大。
- “fpm - alpine”占用空间极小。它基于 Alpine Linux,仅启动一个 PHP FPM 进程。如果您已经有一个单独的网络服务器,请使用此变体。如果您需要更多在 Alpine Linux 上不可用的工具,请使用 fpm 镜像代替。
使用链接服务器
首先,您需要在 Docker 中运行 MySQL 或 MariaDB 服务器,并且 phpMyAdmin 镜像需要链接到正在运行的数据库容器:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 phpmyadmin
与外部服务器一起使用
您可以在 PMA_HOST 环境变量中指定 MySQL 主机。如果服务器端口不是默认端口,您还可以使用 PMA_PORT 来指定服务器的端口:
docker run --name phpmyadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin
与任意服务器配合使用
您可以通过在启动命令中添加环境变量 PMA_ARBITRARY=1 来使用任意服务器:
docker run --name phpmyadmin -d -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin
使用 docker-compose 和任意服务器
这将使用任意服务器选项运行 phpMyAdmin - 允许您在登录页面上指定任何 MySQL/MariaDB 服务器。
...通过 docker-compose 或 docker stack deploy
示例 docker-compose.yml 用于 phpmyadmin :
version: '3.1'
services:
db:
image: mariadb:10.6
restart: always
environment:
MYSQL_ROOT_PASSWORD: notSecureChangeMe
phpmyadmin:
image: phpmyadmin
restart: always
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
添加自定义配置
您可以通过创建一个名为 config.user.inc.php 的文件并在其中设置各种用户自定义设置(例如配置存储设置)来添加您自己的自定义 config.inc.php 设置,然后使用以下方式将其链接到容器中:
-v /some/local/directory/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php
在像这样的 docker run 线上:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php phpmyadmin
务必将 <?php 作为配置文件的第一行,否则内容将不会被检测为 PHP 代码。
您提供的“Example:”在英文中意为“例如:”,所以翻译成简体中文为: 例如:
<?php
$cfg['ShowPhpInfo'] = true; // Adds a link to phpinfo() on the home page
查看以下链接以获取配置文件信息:
- https://docs.phpmyadmin.net/en/latest/config.html#config
- https://docs.phpmyadmin.net/en/latest/setup.html
在反向代理后面的使用情况
将变量 PMA_ABSOLUTE_URI 设置为反向代理使 phpMyAdmin 可用的完全限定路径( https://pma.example.net/ )。
环境变量摘要
PMA_ARBITRARY- 当设置为 1 时,将允许连接到任意服务器PMA_HOST- 定义 MySQL 服务器的地址/主机名PMA_VERBOSE- 定义 MySQL 服务器的详细名称PMA_PORT- 定义 MySQL 服务器的端口PMA_HOSTS- 定义 MySQL 服务器的地址/主机名的逗号分隔列表PMA_VERBOSES- 定义 MySQL 服务器详细名称的以逗号分隔的列表PMA_PORTS- 定义 MySQL 服务器端口的逗号分隔列表PMA_USER和PMA_PASSWORD- 定义仅与config身份验证方法一起使用的用户名和密码PMA_ABSOLUTE_URI- 到 phpMyAdmin 的完整 URL。在反向代理配置中使用时有时需要。除非需要,否则不要设置此内容。请参阅文档。PMA_CONFIG_BASE64- 如果设置,此选项将使用变量的 base64 解码内容覆盖默认的config.inc.phpPMA_USER_CONFIG_BASE64- 如果设置,此选项将使用变量的 base64 解码内容覆盖默认的config.user.inc.phpPMA_UPLOADDIR- 若已定义,此选项将设置可用于导入的文件可保存路径($cfg['UploadDir'])PMA_SAVEDIR- 若已定义,此选项将设置可保存导出文件的路径($cfg['SaveDir'])PMA_CONTROLHOST- 当设置后,此指向用于存储 phpMyAdmin 配置存储数据库的备用数据库主机PMA_CONTROLPORT- 如果设置,将覆盖用于连接到控制主机以存储 phpMyAdmin 配置存储数据库的默认端口(3306)PMA_PMADB- 定义用于 phpMyAdmin 配置存储数据库的数据库名称。未设置时,高级功能默认情况下不会启用:用户使用零配置(zero configuration)功能登录时仍可能潜在地启用它们。建议值:phpmyadmin或pmadbPMA_CONTROLUSER- 为 phpMyAdmin 定义用于高级功能的用户名(控制用户)PMA_CONTROLPASS- 为 phpMyAdmin 定义与控制用户一起使用的密码PMA_QUERYHISTORYDB- 当设置为真时,可将 SQL 历史记录存储到 phpMyAdmin 配置存储数据库中。当为假时,历史记录将存储在浏览器中,并在注销时清除。PMA_QUERYHISTORYMAX- 当设置为整数时,用于控制历史记录项的数量。请参阅文档。默认值为25。MAX_EXECUTION_TIME- 如果设置,将覆盖 phpMyAdmin($cfg['ExecTimeLimit'])和 PHP max_execution_time(格式为[0-9+])的以秒为单位的最大执行时间(默认 600 秒)MEMORY_LIMIT- 若设置,将为 phpMyAdmin($cfg['MemoryLimit'])和 PHP 的 memory_limit 覆盖内存限制(默认为 512M)(格式为[0-9+](K,M,G),其中 K 表示千字节,M 表示兆字节,G 表示千兆字节,且 1K = 1024 字节)UPLOAD_LIMIT- 如果设置,此选项将覆盖 apache 和 php-fpm 的默认值(格式为[0-9+](K,M,G)默认值为 2048K,这将更改upload_max_filesize和post_max_size值)HIDE_PHP_VERSION- 若已定义,此选项将隐藏 PHP 版本(expose_php = Off)。设置为任意值(例如HIDE_PHP_VERSION=true)。APACHE_PORT- 如果已定义,此选项将把默认的 Apache 端口从80更改,以防您希望它在不同的端口(如非特权端口)上运行。设置为任何端口值(例如APACHE_PORT=8090)
对于与 Docker 机密一起使用,允许将 _FILE 附加到 PMA_PASSWORD 环境变量(如果已设置,它会覆盖 PMA_PASSWORD ):
docker run --name phpmyadmin -d -e PMA_PASSWORD_FILE=/run/secrets/db_password.txt -p 8080:80 phpmyadmin
可使用 _FILE 从文件中读取的变量
MYSQL_ROOT_PASSWORDMYSQL_PASSWORDPMA_USERPMA_PASSWORDPMA_HOSTSPMA_HOSTPMA_CONTROLHOSTPMA_CONTROLUSERPMA_CONTROLPASS
欲获取更详细的文档,请参阅 https://docs.phpmyadmin.net/en/latest/setup.html#installing-using-docker
请将 Docker 容器的任何问题报告至 https://github.com/phpmyadmin/docker/issues
请将有关 phpMyAdmin 的任何问题报告至 https://github.com/phpmyadmin/phpmyadmin/issues
图像变体
phpmyadmin 图像有多种类型,每种都针对特定的用例而设计。
phpmyadmin:<version>
这是事实上的映像。如果您不确定自己的需求是什么,您可能想要使用这个。它被设计为既可以用作一次性容器(挂载您的源代码并启动容器以启动您的应用程序),也可以作为构建其他映像的基础。
phpmyadmin:<version>-alpine
此图像基于流行的 Alpine Linux 项目,可在 alpine 官方镜像中获取。Alpine Linux 比大多数发行版基础镜像(约 5MB)小得多,因此总体上会生成更精简的镜像。
当您首要关注的是最终图像大小尽可能小的时候,此变体是有用的。需要注意的主要警告是,它确实使用 musl libc 而不是 glibc 及相关库,因此软件往往会根据其对 libc 要求/假设的深度而遇到问题。有关可能出现的问题以及使用基于 Alpine 的图像的一些利弊比较的更多讨论,请参阅此 Hacker News 评论线程。
为尽量减小镜像大小,在基于 Alpine 的镜像中通常不会包含其他相关工具(例如 git 或 bash )。以该镜像为基础,在您自己的 Dockerfile 中添加您需要的内容(如果您不熟悉如何安装软件包,请参阅 alpine 镜像说明中的示例)。
许可证
查看此映像中所包含软件的许可证信息。
与所有 Docker 镜像一样,这些镜像可能还包含其他可能受其他许可证约束的软件(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可信息可能会在 repo-info 存储库的 phpmyadmin/ 目录中找到。
对于任何预构建图像的使用,图像用户有责任确保对此图像的任何使用都符合其中包含的所有软件的任何相关许可。
