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

Mac 下使用 wordpress 的 Docker 容器,无法连接到 mysql 容器,求解惑

  •  
  •   ideacco · 2019-08-01 13:26:30 +08:00 · 2164 次点击
    这是一个创建于 1720 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT,在 MAC 下,有两个容器,一个是 wordpress 的容器,另外一个是 mysql 的容器。 在宿主机( mac 本机)下单独访问都是没问题的。比如可以 127.0.0.1:8080 打开 wordpress 的安装页面,也可以通过 Navicat 连接打 mysql 数据库。

    为了让两个容器互相通信,我做了如下事情:

    1. 由于官方不再推荐使用 --link 这种方式连接了,所以我建了一个自定义 docker network 比如 docker network create my-net

    2. 让现有的容器连接到 dokcer 网络中,并且通过docker network inspect my-net查看到,上面两个容器已经在同一个自定义网络里面了

    3. 为了测试自定义网段的容器是否可以相互通信,我另外创建了 busybox1 和 busybox2 两个容器,并连接到自定义网络,在 busybox1 容器中,运行 ping 命令,可以通过 ping busybox2 主机名的方法 ping 通另外一台主机。

    4. 进入到 mysql 主机(mysql)中,设置了 mysql 的 root 登陆权限为 任意地址。

    5. 进入(映射文件夹) wordpress 容器中,并且修改了 wp-config.php 的数据库连接地址:

      define( 'DB_NAME', 'wp_db' );
      
      /** MySQL database username */
      define( 'DB_USER', 'root' );
      
      /** MySQL database password */
      define( 'DB_PASSWORD', 'root' );
      
      /** MySQL hostname */
      define( 'DB_HOST', 'mysql' );
      

    试了一通,然而还是连不上,看来只有 V2 大神可以帮忙了。感谢任何意见

    5 条回复    2019-08-01 15:40:49 +08:00
    realkenshinji
        1
    realkenshinji  
       2019-08-01 13:32:10 +08:00
    docker-compose 了解一下?
    ideacco
        2
    ideacco  
    OP
       2019-08-01 13:48:42 +08:00
    @realkenshinji 感谢推荐,我去了解一下。
    zeroDev
        3
    zeroDev  
       2019-08-01 13:54:57 +08:00 via Android
    ideacco
        4
    ideacco  
    OP
       2019-08-01 14:35:28 +08:00
    @zeroDev 感谢,写的好详细要慢慢看了
    ideacco
        5
    ideacco  
    OP
       2019-08-01 15:40:49 +08:00
    @realkenshinji 非常感谢,果然 docker-compose 是神器,并且很容易上手。已经搞定了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5499 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 07:33 · PVG 15:33 · LAX 00:33 · JFK 03:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.