是否可以在主机网络上完全看到docker容器?

时间:2017-12-06 05:30:11

标签: docker networking

在我们的办公室,我们有一个由10台计算机组成的小型集群。一些计算机还托管虚拟机(使用VirtualBox)。我们为虚拟机使用桥接网络,以便通过主机网络完全访问虚拟机。虚拟机从与实际计算机相同的池(192.168.0.xxx)获取其IP地址。

使用docker容器可以实现相同的功能吗?请注意,我们所有的计算机和虚拟机都在运行Ubuntu 17.10(artful aardvark)。

我知道可以在docker容器和主机之间进行端口转发。但我们想要更多!我们希望docker容器直接从主机网络接收ip地址(即192.168.0.xxx)。你能告诉我这是否可能吗?如果是,如何实现?谢谢!

1 个答案:

答案 0 :(得分:1)

是的,可以通过'macVlan'网络驱动程序来完成。

首先,您需要创建一个macvlan网络:

docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 mynet

此命令将创建一个macVlan网络,其子网和网关与主机的配置相同

并且,您可以使用特定网络运行docker容器:

docker run --net=mynet -it --rm alpine:latest /bin/sh

这就是全部。您可以获取容器的IP并尝试在其他主机中ping它。

PS:母亲主人无法访问该容器。

参考文档:https://docs.docker.com/engine/userguide/networking/get-started-macvlan/