V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
V2EX  ›  Docker

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

  •  
  •   Livid · 2019-07-06 06:05:53 +08:00 · 5871 次点击
    这是一个创建于 1952 天前的主题,其中的信息可能已经有所发展或是发生改变。

    容器内部可以通过一个特殊主机名 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 简单一些。

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

    还有什么其他方式可以实现这个目的么?
    lxy
        11
    lxy  
       2019-07-06 08:53:35 +08:00
    如果经常用 PMA,可以把 session 超时时间设置长一些: /t/576469
    Tink
        12
    Tink  
       2019-07-06 10:21:16 +08:00 via iPhone
    这是 mac 的 feature 吧
    chinesestudio
        13
    chinesestudio  
       2019-07-06 19:07:09 +08:00 via Android
    感觉 v2 是全部容器化了
    thet
        14
    thet  
       2019-07-07 02:05:41 +08:00 via Android
    @Livid datagrip 是有的,改表结构的同时生成 SQL
    Livid
        15
    Livid  
    MOD
    OP
       2019-07-07 11:18:17 +08:00
    @thet 感谢推荐。有买 JetBrains 全家桶,但是不知道有这个功能。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2842 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:34 · PVG 21:34 · LAX 05:34 · JFK 08:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.