同一个宿主机中的两个docker容器之间通信

文章目录

  • 问题描述:
  • 解决过程:

问题描述:

  1. 同一个华为云宿主机上, 两个docker容器,分别是django和mysql, django通过公网IP访问mysql,运行正常.
  2. 电脑本地 django容器 使用 内部IP 访问 本地服务器上 的docker mysql容器, 运行正常.
  3. 本地服务器 虚拟机上,django使用内部IP访问mysql,不成功,报错如图.
    在这里插入图片描述

解决过程:

感谢这位大神, 重点参考文章

  1. 首先,django 容器在华为云是完全可以跑起来的, 说明代码没有问题
  2. 其次, mysql 数据正常
  3. 使用命令 docker inspect mysql 检查 mysql
    同一个宿主机中的两个docker容器之间通信_第1张图片
  • 从图中可以看到GetwayIPAddress, 优先使用IP地址访问, 访问不成功,
  • 切换为Getway, 访问成功,
  1. 看过参考文章后, 测试结果
  • 接受访问的docker 提供的是mysql服务,
  • 测试1: 将django.settings.pyDATABASES中的 HOST,改为:172.17.0.2 PORT改为: 3306, 访问成功
  • 测试2: 将django.settings.pyDATABASES中的 HOST,改为:172.17.0.1 PORT改为: 3333, (此端口是中docker run -p 3333:3306 -name mysql), 访问成功

你可能感兴趣的:(docker进阶,docker)