docker 主机网络中的主机网络容器

docker host network container in host network

我的任务是在父系统的网络上放置一个docker容器,并放置一个相邻的ip地址。粗略地说,使用您自己的 mac 地址和您自己的 IP 地址制作第二个虚拟 machine。不幸的是,我已经尝试了所有方法。pipework 没有正确地将物理接口放入容器内,makvlan 无法访问 Internet ...我在 docker 的网络中尝试了主机模式,但是它给容器两个ip地址(一个父系统的地址,第二个物理接口的第二个地址。告诉我如何解决这个问题

您可以使用 docker run -p 选项在特定接口上发布端口(接受入站连接)。假设主机网络是192.168.1.0/24,主地址是192.168.1.111,副地址是192.168.1.222;那么你可以

docker run -p 192.168.1.222:80:5000

主机上的端口 80,仅在辅助接口上,将转发到容器中的端口 5000。此 IP 地址的默认值为 0.0.0.0,使该端口可在所有接口上访问。

您需要在主机上配置辅助IP地址。在系统上安装 Docker 根本不会改变它的机制。

你不需要主机网络:它通常禁用 Docker 网络,在这个例子中它意味着容器进程可以看到所有主机接口,所以 process 需要配置为绑定到正确的接口。相反,使用标准网络,您需要确保进程绑定到 0.0.0.0“所有接口”地址,这在 Docker.

中很典型。