首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从码头容器访问主机数据库

问从码头容器访问主机数据库
EN

Stack Overflow用户
提问于 2015-01-20 22:45:11
回答 6查看 170.7K关注 0票数 194

如果我在某台主机上运行mysql数据库,并且该主机也在运行一个码头容器:如何从运行在主机上的docker容器中访问mysql数据库?

例如,是否有一种方法可以将主机端口发布到容器(与docker运行-p的方式相反)?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-01-21 02:19:55

对于如何以一种一致、充分理解和可移植的方式进行这一工作,有几个由来已久的讨论。没有完整的解决方案,但我会把你和下面的讨论联系起来。

在任何情况下,您都希望尝试使用-- address选项将主机的ip地址添加到容器的/etc/host文件中。从那里连接到任何所需端口上的主机都是很简单的:

向容器宿主文件添加条目 您可以使用一个或多个附加主机标志将其他主机添加到容器的/etc/host文件中。此示例为名为docker的主机添加静态地址: $ docker run -add= docker :10.180.0.1-rm -it debian $$ ping停靠坞(10.180.0.1):48个数据字节56字节从10.180.0.1: icmp_seq=0 ttl=254 time=7.600 ms 56字节从10.180.0.1: icmp_seq=1 ttl=254 time=30.705 ms ^C-停靠统计-发送-2个数据包,收到2个数据包,包丢失率为0%,往返时间最小/avg/max/stddev= 7.600/19.152/30.705/11.553 ms 注意:有时您需要连接到Docker主机,这意味着获取主机的IP地址。可以使用以下shell命令简化此过程: $别名hostip="ip路由显示0.0.0.0/0区grep -Eo‘ip \S+’AC.26 awk '{ print $2 }'“$ docker run --add=docker:$(Host) --rm -it debian

文档:

https://docs.docker.com/engine/reference/commandline/run/

关于从容器访问主机的讨论:

https://github.com/docker/docker/issues/1143

https://github.com/docker/docker/issues/10023

票数 99
EN

Stack Overflow用户

发布于 2018-04-18 19:39:04

从18.03博士:

我想从容器连接到主机上的服务。 主机有一个不断变化的IP地址(如果您没有网络访问权限,则没有)。从18.03开始,我们的建议是连接到特殊的DNS名称host.docker.internal,它解析到主机使用的内部IP地址。 网关也可以作为gateway.docker.internal访问。

示例:下面是用于容器中的MySQL连接字符串来访问主机上的MySQL实例的内容:

代码语言:javascript
复制
mysql://host.docker.internal:3306/my_awesome_database
票数 161
EN

Stack Overflow用户

发布于 2017-08-11 03:06:24

从Docker 17.06开始,只有DNS名称才能在码头容器中使用,解析为主机的IP地址。它是:

docker.for.mac.localhost

文档在这里:https://docs.docker.com/docker-for-mac/networking/#httphttps-proxy-support

票数 41
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28056522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档