将“host”设置为Docker的默认网络

时间:2017-04-28 13:37:57

标签: docker

在我连接Cisco VPN之前,Docker可以构建容器。之后,容器无法连接到外部互联网。它不仅仅是一个DNS问题,它根本无法路由到Docker自己的网络之外的任何东西。现在,我可以通过使用--net=host运行容器来解决这个问题但问题是使用dockerfiles构建容器。我认为无法在那里设置主机。还有其他地方我可以配置docker,只是总是使用'​​host'作为默认网络吗?

3 个答案:

答案 0 :(得分:4)

docker build command还有一个--network参数,您可以使用该参数指定应该用于中间容器的网络模式

  

--network (=default)在构建期间设置RUN指令的网络模式

这应该允许您使用以下内容构建容器:

docker build -t yourimagename --network=host .

答案 1 :(得分:1)

Dockerfile用于定义如何构建图像。除了设置默认命令和/或入口点之外,它没有运行时参数。

网络仅是运行时关注的问题。如果使用docker run的参数不合适,也许您可​​以使用docker-compose.yml以及docker-compose工具或swarm。在这两种情况下,您都可以为docker-compose.yml中定义的容器定义网络参数。

network_mode: "host"

请参阅documentation

答案 2 :(得分:0)

我在运行 CentOS 7 的虚拟机上遇到了这个问题。我升级了一些 yum 包(containerd, container-selinux, docker-cedocker-ce-cli)后,问题解决了。