• Adminer 是一个用 PHP 编写的轻量数据库管理工具,相比于 phpmyadmin ,它体积更小,资源占用更小
  • Adminer 支持的数据库类型有很多,包括但不限于 MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, Elasticsearch, MongoDB 等,还可以通过插件支持更多的数据库
    Adminer 官网
    Github - Adminer

使用 Docker 安装 Adminer

Docker Hub - Adminer

拉取 Adminer 镜像

docker pull adminer

创建 Adminer 容器

docker run -d --name adminer --link mariadb:db -p 8080:8080 --restart=unless-stopped adminer

参数说明:

参数名 含义
-d 以daemon方式运行(后台运行)
name 容器名称
link 容器名:db 将数据库容器与adminer容器链接起来作为adminer容器中的域名’db’
-p 主机端口:容器端口 端口映射
–restart 重启策略,可选 unless-stopped,always,on-failure,no

访问 服务器IP:8080 即可进入 Adminer
输入用户名密码登录
Login
若数据库直接运行在宿主机,为了安全起见,需要通过 docker 网卡的 IP 访问宿主机
大多数情况下 Docker 会将宿主机表示为 docker0 上的 172.17.0.1
使用以下命令查看宿主机 IP

ip addr show docker0

IP

使用插件

添加参数 -e ADMINER_PLUGINS="插件名称,用空格分开"插件列表

  • 若使用的插件需要参数,则要根据提示手动创建文件并推送至容器中

例如使用 login-servers 插件:

docker run --link mariadb:db -p 8080:8080 -e ADMINER_PLUGINS='login-servers' adminer

直接启动会直接报错

docker logs 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'
);

这是因为 login-servers 插件需要参数才能正常工作,所以不适用上面的方法
解决方法:创建 login-servers.php 填写以下内容

<?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'
);

推送至容器中

docker cp login-servers.php adminer:/var/www/html/plugins-enabled/

然后重启容器使用

使用主题

添加参数 -e ADMINER_DESIGN='主题名称'
这里是主题列表 可在官网预览主题样式

更多内容

请参考这篇文章:CSDN - 强大的网页数据库管理工具Adminer