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