Skip to content

弃用通知

Adminer 不再维护(上游):

我已经停止做这件事了,但也许有一天我会重新开始。

另请参阅 TimWolla/docker-adminer#147。强烈建议用户寻找替代方案。

快速参考

  • 由……维护: (注:原文中“Maintained by:”后面应该还有具体的维护者信息,但题目中未给出,所以翻译只能到此为止。)
    蒂姆·杜斯特胡斯(来自 Docker 社区)

  • 哪里可以获得帮助:
    Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow

支持的标签及各自的 Dockerfile 链接

无支持的标签

快速参考(续)

Adminer (该词通常是一个数据库管理工具的名称,在中文中可能没有完全对应的专用名词,所以直接保留原文名称)

什么是 Adminer?

Adminer(以前称为 phpMinAdmin)是一个用 PHP 编写的功能齐全的数据库管理工具。与 phpMyAdmin 相反,它由一个单个文件组成,可随时部署到目标服务器。Adminer 适用于 MySQL、PostgreSQL、SQLite、MS SQL、Oracle、Firebird、SimpleDB、Elasticsearch 和 MongoDB。

adminer.org (该文本为一个网址,在中文中直接保留原文即可)

logo

如何使用此图像

独立式;单独的

$ docker run --link some_database:db -p 8080:8080 adminer

然后您可以在您的浏览器中输入 http://localhost:8080http://host-ip:8080

快速通用网关接口(Fast Common Gateway Interface) ,通常简称为“FastCGI” ,这里按字面直译为“快速通用网关接口” ,具体翻译可根据上下文和实际使用场景进行调整。如果仅需保留英文缩写的形式,可译为“FastCGI” 。在没有更多上下文信息的情况下,本答案中提供了两种可能的翻译方式,供您参考。按照题目要求,此处输出:FastCGI

如果您已经在运行支持 FastCGI 的 Web 服务器,您可能更愿意通过 FastCGI 运行 Adminer:

$ docker run --link some_database:db -p 9000:9000 adminer:fastcgi

然后将您的网络服务器指向容器的 9000 端口。

注意:这会将 FastCGI 套接字暴露到互联网。请确保添加适当的防火墙规则或使用专用的 Docker 网络来代替,以防止直接访问。

...通过 docker-composedocker stack deploy

示例 docker-compose.yml 用于 adminer

# Use root/example as user/password credentials

version: '3.1'

services:

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

  db:
    image: mysql:5.6
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

Try in PWD

运行 docker stack deploy -c stack.yml adminer (或 docker-compose -f stack.yml up ),等待其完全初始化,然后访问 http://swarm-ip:8080http://localhost:8080http://host-ip:8080 (视情况而定)。

正在加载插件

此图像捆绑了所有官方的 Adminer 插件。您可以在 GitHub 上找到插件列表:https://github.com/vrana/adminer/tree/master/plugins 。

要加载插件,您可以在 ADMINER_PLUGINS 中传递文件名列表:

$ docker run --link some_database:db -p 8080:8080 -e ADMINER_PLUGINS='tables-filter tinymce' adminer

如果插件需要参数才能正确工作,而不是将插件添加到 ADMINER_PLUGINS 中,则需要向容器中添加一个自定义文件:

$ docker run --link some_database:db -p 8080:8080 -e ADMINER_PLUGINS='login-servers' adminer
Unable to load plugin file "login-servers", because it has required parameters: servers
Create a file "/var/www/html/plugins-enabled/login-servers.php" with the following contents to load the plugin:

<?php
require_once('plugins/login-servers.php');

/** Set supported servers
    * @param array array($domain) or array($domain => $description) or array($category => array())
    * @param string
    */
return new AdminerLoginServers(
    $servers = ???,
    $driver = 'server'
);

要加载自定义插件,您可以添加 PHP 脚本,将插件对象的实例返回到 /var/www/html/plugins-enabled/

选择一种设计

该图像包含了在 adminer 的源包中可用的所有设计。您可以在 GitHub 上找到设计列表:https://github.com/vrana/adminer/tree/master/designs 。

要使用捆绑设计,您可以在 ADMINER_DESIGN 中传入其名称:

$ docker run --link some_database:db -p 8080:8080 -e ADMINER_DESIGN='nette' adminer

要使用自定义设计,您可以添加一个名为 /var/www/html/adminer.css 的文件。

与外部服务器一起使用

您可以使用 ADMINER_DEFAULT_SERVER 环境变量指定默认主机。如果您要连接到外部服务器或名为非默认 db 的 Docker 容器,这很有用。

docker run -p 8080:8080 -e ADMINER_DEFAULT_SERVER=mysql adminer

支持的驱动程序

虽然 Adminer 支持多种数据库驱动程序,但此镜像默认仅支持以下几种:

  • MySQL (该词通常不进行翻译,直接保留原样) ,若按照字面意思翻译为:“我的 SQL” ,但在实际应用中,MySQL 作为一种数据库管理系统,一般直接使用其英文名称,所以这里给出两种可能的翻译供您参考
  • PostgreSQL(该词通常不进行逐字翻译,直接保留原样)
  • SQLite (该词通常不进行逐字翻译,在中文语境中直接使用英文表述)
  • 简单数据库(SimpleDB 直译为“简单的数据库”,根据常见的技术术语翻译习惯,也可译为“简单数据库”)
  • Elasticsearch (该词通常不进行翻译,直接保留英文名称,若需翻译,可译为:弹性搜索)

要为其他驱动程序添加支持,您需要在此映像之上安装以下 PHP 扩展:

  • pdo_dblib (MS SQL)
  • oci8 (甲骨文公司)
  • interbase (火鸟)
  • mongodb (MongoDB)

许可证

查看此映像中所包含软件的许可证信息。

与所有 Docker 镜像一样,这些镜像可能还包含其他可能受其他许可证约束的软件(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。

一些能够自动检测到的额外许可信息可能会在 repo-info 存储库的 adminer/ 目录中找到。

对于任何预构建图像的使用,图像用户有责任确保对此图像的任何使用都符合其中包含的所有软件的任何相关许可。