Docker容器可以通过主机networking完全可见吗?

在我们的办公室,我们有一个10台电脑的小群。 一些计算机还托pipe虚拟机(使用VirtualBox)。 我们为虚拟机使用桥接networking,以便虚拟机可以通过主机networking完全访问。 虚拟机从同一个池(192.168.0.xxx)获得与实际计算机相同的IP地址。

是否有可能使用docker集装箱完成相同的事情? 请注意,我们所有的电脑和虚拟机都运行Ubuntu 17.10(狡猾的土豚)。

我知道可以在Docker容器和主机之间进行端口转发。 但我们想要的不仅仅是这些! 我们希望docker容器直接从主机networking(即192.168.0.xxx)接收IP地址。 你能告诉我这是否可能吗? 如果是的话,怎样才能做到呢? 谢谢!

是的,它可以通过'macVlan'networking驱动程序完成。

首先,你需要创build一个macvlannetworking:

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

这个命令将创build一个macvlannetworking,它的子网和网关和主机的configuration相同

而且,您可以运行特定networking的docker集装箱:

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

这是一切。 您可以获取容器的IP并尝试在其他主机上ping它。

PS:容器不能被母主机访问。

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