我的主机是在ESX服务器上运行的SLES12 VM . VM Host具有从ESX上运行的DHCP服务器获取DHCP IP的接口 .
在我的docker容器(docker image:opensuse)中,我正在运行NFS服务器,因此需要外部访问 . I want the container to acquire dhcp IP from the dhcp server running on ESX (just like my Host VM gets).
我试过了pipework但是无法让它运转起来 . 这是我做的:
-
在ESX上启用了混杂模式 . 创建了新桥(br1)和
将其附加到主机接口eth0 . -
使用pipework使用此命令在Docker容器中添加了一个带有IP地址的新接口(eth1)
pipework br1 $CONTAINERID 0/0
-
尝试将DHCP IP分配给容器的新接口(eth1)后,使用命令
pipework eth1 $CONTAINERID dhclient
但得到以下错误: RTNETLINK answers: File exists
- 为了解决这个问题,我在容器中刷新了eth1设备并再次运行命令 . 我发现我的docker守护进程崩溃了 . Docker版本:1.12.3(客户端和服务器) .
请让我知道我在这里缺少什么 . 我希望我的容器的接口从ESX上运行的DHCP服务器获取DHCP IP .
1 回答
您需要使用macvlan或ipvlan驱动程序创建docker网络 . 然后,您将需要使用DHCP IPAM驱动程序(IPAM代表IP地址管理) .
以下是对如何做类似事情的一些解释的要点:https://gist.github.com/nerdalert/3d2b891d41e0fa8d688c