在 macOS 上通过 Docker 启动一个 phpMyAdmin 容器来管理 Host 上的 MySQL

2019-07-06 06:05:53 +08:00
 Livid

容器内部可以通过一个特殊主机名 docker.for.mac.localhost 访问到宿主机。这也是为了方便开发而有的一个特性。

docker run --name pma -d -e PMA_HOST=docker.for.mac.localhost -p 8888:80 phpmyadmin/phpmyadmin

然后就可以通过宿主机的 localhost:8888 访问到这个 phpMyAdmin 来管理宿主机本地的 MySQL。

这样的操作步骤还是比在宿主机上安装一堆 NGINX / Apache + PHP-FPM 简单一些。

5723 次点击
所在节点    Docker
15 条回复
gzlock
2019-07-06 07:00:17 +08:00
这个操作我也做过
Cbdy
2019-07-06 07:04:50 +08:00
这个操作我也做过,然而还是安心用着 datagrip
wwqgtxx
2019-07-06 07:19:55 +08:00
对于 linux 上的 docker 有啥办法直接访问宿主机么
Trim21
2019-07-06 07:53:07 +08:00
@wwqgtxx 写个 entrypoint.sh

#!/bin/bash
ip_address=$(ip -4 route list match 0/0 | cut -d' ' -f3)
echo "${ip_address} host.docker.internal" >> /etc/hosts

不需要挂载到 host 网络
Nasei
2019-07-06 08:06:01 +08:00
18.03 之后应该用 host.docker.internal 和 gateway.docker.internal,这样 win 和 mac 是通用的,Linux 上貌似最近也实现了这个,但我还没试过
Wincer
2019-07-06 08:09:04 +08:00
@wwqgtxx 可以直接把 docker 的网络模式设置为 host,这样可以与主机共享端口
wwqgtxx
2019-07-06 08:17:06 +08:00
@Nasei 看了一下,host.docker.internal 在 Linux 上应该还没实现
https://github.com/docker/libnetwork/pull/2348
@Trim21 @Wincer 的方法亲测有效
mcfog
2019-07-06 08:21:02 +08:00
比起臃肿的 pma 更喜欢 adminer 一点
cappuccinos
2019-07-06 08:37:06 +08:00
@mcfog #8 怎么编译只有 sqlite 驱动模式下不需要密码访问的那种单文件呢?尝试过没成功。
Livid
2019-07-06 08:41:25 +08:00
其实 pma 我的主要用途是用来获得改表结构时的那个差异 SQL 文件。

还有什么其他方式可以实现这个目的么?
lxy
2019-07-06 08:53:35 +08:00
如果经常用 PMA,可以把 session 超时时间设置长一些: /t/576469
Tink
2019-07-06 10:21:16 +08:00
这是 mac 的 feature 吧
chinesestudio
2019-07-06 19:07:09 +08:00
感觉 v2 是全部容器化了
thet
2019-07-07 02:05:41 +08:00
@Livid datagrip 是有的,改表结构的同时生成 SQL
Livid
2019-07-07 11:18:17 +08:00
@thet 感谢推荐。有买 JetBrains 全家桶,但是不知道有这个功能。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/580501

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX