容器内部可以通过一个特殊主机名 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 简单一些。
1
gzlock 2019-07-06 07:00:17 +08:00 via Android
这个操作我也做过
|
2
Cbdy 2019-07-06 07:04:50 +08:00 via Android
这个操作我也做过,然而还是安心用着 datagrip
|
3
wwqgtxx 2019-07-06 07:19:55 +08:00 via iPhone
对于 linux 上的 docker 有啥办法直接访问宿主机么
|
4
Trim21 2019-07-06 07:53:07 +08:00 via iPhone 1
@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 网络 |
5
Nasei 2019-07-06 08:06:01 +08:00
18.03 之后应该用 host.docker.internal 和 gateway.docker.internal,这样 win 和 mac 是通用的,Linux 上貌似最近也实现了这个,但我还没试过
|
7
wwqgtxx 2019-07-06 08:17:06 +08:00
@Nasei 看了一下,host.docker.internal 在 Linux 上应该还没实现
https://github.com/docker/libnetwork/pull/2348 @Trim21 @Wincer 的方法亲测有效 |
8
mcfog 2019-07-06 08:21:02 +08:00 via Android
比起臃肿的 pma 更喜欢 adminer 一点
|
9
cappuccinos 2019-07-06 08:37:06 +08:00 via iPhone
@mcfog #8 怎么编译只有 sqlite 驱动模式下不需要密码访问的那种单文件呢?尝试过没成功。
|
10
Livid MOD OP 其实 pma 我的主要用途是用来获得改表结构时的那个差异 SQL 文件。
还有什么其他方式可以实现这个目的么? |
12
Tink 2019-07-06 10:21:16 +08:00 via iPhone
这是 mac 的 feature 吧
|
13
chinesestudio 2019-07-06 19:07:09 +08:00 via Android
感觉 v2 是全部容器化了
|