简单,直接,强大的方法使主机端口可用于Docker容器?

时间:2016-06-11 13:48:52

标签: docker docker-machine

将目录挂载到docker容器中非常容易。我怎样才能轻松地将端口安装到"一个码头工人容器?

示例:

我的本​​地计算机上运行了MySQL服务器。要从docker容器连接到它,我可以将mysql.sock套接字文件挂载到容器中。但是出于某种原因(比如打算运行一个MySQL从属实例)我说不能使用mysql.sock来连接并需要使用TCP。

我怎样才能最轻松地完成这项工作?

需要考虑的事项:
如果我使用Linux,我可能会在本机上运行Docker,但如果我在Mac或Windows上,通过Docker Machine或Docker for Mac / Windows(Beta),我也可能在VM中运行它。答案应该无缝地处理这两种情况,没有我,因为用户必须根据我的特定Docker设置决定哪种解决方案是正确的。
简单地将容器分配给主机网络通常不是一种选择,因此不幸的是,这不是一个合适的解决方案。

潜在的解决方向:
1)我知道设置适当的本地DNS并使Docker容器(网络)与之通信可能是一个适当的,强大的解决方案。如果有这样的DNS服务,可以使用1,最多2个命令进行设置,然后"只需要工作",这可能是某种情况。
2)本质上需要的是,某些内容将侦听容器内的端口,并且类似于TCP / IP参与者之间的一种代理路由流量。 discussion on this closed Docker GH issue显示了一些ip route命令行魔法,但对于很多人来说,这有点太多了,包括我自己。但是如果有一些类似于此的东西在完全自动化的同时理解Docker,并且再次可以启动并运行1-2个命令,那么这是一个可接受的解决方案。

1 个答案:

答案 0 :(得分:0)

我认为您可以使用--net=host选项运行容器。在这种情况下,容器将绑定到主机的网络,并且能够访问本地计算机上的所有端口。