如何通过Docker连接本地MySQL服务器?

2024-03-09

这是一个关于如何通过 Docker 连接到本地服务的更普遍的问题。 Github问题中有类似的问题here https://github.com/docker/docker/issues/1143这似乎没有任何解决方案。我真正想要的是能够针对我的本地开发 MySQL 服务器进行本地开发,然后一旦我准备好部署,就可以针对新创建的部署候选 docker 映像进行本地测试。

理想情况下,两者也从同一个地方获取设置,所以我可以把mysql_server: host_ip。这似乎是一个典型的用例。目前这样的事情可能吗?

我使用 Boot2Docker 专门与在我的主机 mac 的 OS X Yosemite 上运行的 MySQL 服务器一起使用,而不是在容器中。不过,为未来的读者提供一个更通用的答案会很酷。


The Docker CLI 文档 https://docs.docker.com/engine/reference/run/给出这个解决方案(假设您正在 Linux 主机上运行):

有时您需要从容器内连接到 Docker 主机。要启用此功能,请使用以下命令将 Docker 主机的 IP 地址传递给容器--add-host旗帜。要查找主机的地址,请使用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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过Docker连接本地MySQL服务器? 的相关文章

随机推荐