Docker 容器的仅主机模式网络



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

我已经考虑过使用 Docker 的--net=none但我不知道该往哪个方向配置网络以实现我的目标。TAP/TUN 似乎是要走的路,但我希望有一些方向

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

创建网络:

docker network create -d bridge --internal hostonly

运行容器:

docker run --network hostonly ... 

可能的部分答案:

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

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

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

最新更新