如何通过Docker连接到本地MySQL服务器?
这是关于如何通过Docker连接到本地服务的更普遍的问题。有在Github上的问题类似的问题在这里,似乎并未有任何决议。我真正想要的是能够针对本地开发MySQL服务器在本地进行开发,然后一旦准备好进行部署,就可以针对新创建的部署候选docker映像进行本地测试。
理想情况下,两者都可以从同一位置获取设置,所以我可以放mysql_server:host_ip
。这似乎是一个典型的用例。目前有这种可能吗?
我正在将Boot2Docker专门用于MySQL服务器,而不是在主机Mac OS XYosemite上运行的MySQL服务器,而不是在容器中。能够为将来的读者提供更一般的答案会很酷。
回答:
该泊坞窗CLI文档给这个解决方案(假定你是一个Linux主机上运行):
有时您需要从容器内部连接到Docker主机。为此,请使用该
--add-
host标志将Docker主机的IP地址传递到容器。要查找主机的地址,请使用
ip addr show
命令。传递给您的标志
ip addr show
取决于您在容器中使用的是IPv4还是IPv6网络。将以下标志用于名为的网络设备的IPv4地址检索eth0
:
$ HOSTIP=`ip -4 addr show scope global dev eth0 | grep inet | awk '{print \$2}' | cut -d / -f 1`$ docker run --add-host=docker:${HOSTIP} --rm -it debian
然后,docker
容器内的名称将映射到主机的IP地址。对于您的情况,您可以使用docker run --add-
host=mysql_server:$(hostip) ...
如果使用Boot2Docker,它将在预定义的地址处建立到主机的映射,因此在该平台上,与上述命令等效的只是一个命令:
$ docker run --add-host=docker:192.168.59.3 --rm -it debian
以上是 如何通过Docker连接到本地MySQL服务器? 的全部内容, 来源链接: utcz.com/qa/433410.html