gpt4 book ai didi

mysql - Docker MySQL 容器从网关地址而不是源容器传入连接

转载 作者:行者123 更新时间:2023-11-29 03:17:42 24 4
gpt4 key购买 nike

我在自己的用户定义网络上有一个基本的容器堆栈,子网为 172.21.0.0/16。我的 MySQL 容器地址是 172.21.0.2,PHP/Apache 容器地址是 172.21.0.3

在此之前,我必须允许 MySQL 允许来自 172.21.0.3 通过 PHP 的传入连接,这非常有意义。现在,似乎连接来自网关 172.21.0.1,这对我来说意义不大。我(从基础到中级)的理解表明,仅当流量的目的地是其本地网络之外的地址时才应使用网关 - 但显然在这种情况下 MySQL 和 PHP/Apache 在同一网络上。

我们的两个环境已经开始出现这种情况,虽然允许来自网关地址的连接是一个简单的修复,但我在不了解发生了什么以及原因的情况下犹豫是否继续。这似乎也增加了应用程序内数据库查询的额外延迟。

通过 phpMyAdmin 登录到受影响的环境会在“数据库服务器”信息 Pane 中显示“用户:root@172.21.0.1”。未受影响的环境显示“root@phpmyadmin_1.test_default”(user@[container].[network])。

两个环境都使用完全相同的图像和相同版本的 Docker - 18.06.1-ce。除了 Docker 的版本升级外,我使用的 docker-compose.yml 没有其他任何变化。

为什么我的环境开始像这样?我应该更喜欢来自实际来源的连接,而不是通过网关吗?我怎样才能回到那种操作方式?

感谢您提供任何指导或知识。

最佳答案

对于遇到类似情况的任何其他人,我认为这是由 Docker 从 18.03.1-ce 升级到 18.06.1-ce< 引起的 通过 Docker 自己的存储库。在此操作后执行服务器重启(目前)已恢复对堆栈网络的感知。

到我的 MySQL 容器的连接现在正确地来自 PHP/Apache 容器,而不是来自桥接网络的网关地址。引入的延迟消失了,我能够删除与网关地址关联的特权。

关于mysql - Docker MySQL 容器从网关地址而不是源容器传入连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52366777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com