Docker容器的主机网络

时间:2015-01-28 06:42:57

标签: network-programming docker

运行Docker容器时,我想设置容器的网络,以便容器只能与主机正在侦听的(TCP)端口上的主机通信。我不希望容器访问互联网,或在同一主机上运行的其他容器,或主机连接到的网络。如果我使用类似VMWare的VM运行VM,我会选择"仅限主机"网络选项,它使用上述属性在guuest VM和主机之间创建专用网络。

我已经研究过使用Docker --net=none,但我不知道配置网络以实现目标的方向。 TAP / TUN似乎是要走的路,但我很欣赏一些方向

2 个答案:

答案 0 :(得分:2)

您可以创建--internal网络并在其中运行容器。

创建网络

docker network create -d bridge --internal hostonly

运行容器:

docker run --network hostonly ... 

答案 1 :(得分:1)

潜在的部分答案:

如果您可以使用unix套接字与您的应用程序而不是TCP进行通信,那么您可以使用

docker run -net=none -v /host-path/socket.sock:/container-path/socket.sock

提供容器和主机套接字之间的直接通信,而不允许从容器中取出任何网络。