为Docker容器分配IP地址?

7

我是个新手,对于Docker还不是很熟悉。请问在宿主机或虚拟机上运行的Docker容器是否可以分配IP地址(通过DHCP服务器)?如果可以,请指点一下正确的方向。如果不行,这是容器方法的根本限制还是只是Docker尚未支持的功能?

2个回答

5

Docker在过去的一段时间内有了很大的发展,比如Docker 0.6.5:

容器现在拥有自己的IP地址。你可以使用docker inspect命令来查看一个容器的IP地址,或者如果你想提取它,可以使用:

docker inspect container_name | grep IPAddress | cut -d '"' -f 4.

我希望Docker有一个IP命令...例如docker ip container_name,虽然很容易编写一个Shell脚本来包装上述命令。 - Tracker1
我认为在“-f 4”之后不需要加上点号,代码应该是docker inspect container_name | grep IPAddress | cut -d '"' -f 4 - Unferth
6
另外,您可以执行命令 docker inspect -format="{{.NetworkSettings.IPAddress}}" container_name,跳过其余的 shell 命令。 - Miquella
我的 Docker inspect 没有任何 IP 信息,尽管 Json 字段存在。 - jayunit100

1

注意 - Docker正在大力开发中,因此建议根据当前文档进行确认。

网络元素是当前在docker-dev上讨论的内容之一,看起来长期与libvirt的集成正在考虑中。因此,回答您的问题,NET DHCP或其他类似功能可能没有按照您想要的方式实现。

有关Docker网络实现的一些描述在这篇博客文章中。目前在network.goCreateBridgeIface中设置了一组IP范围。

同时,您可能想要查看pipework,这是一个与Docker一起使用的用于各种网络配置的工具。这将允许您在容器上添加和修改IP地址,创建私有网络并将容器连接到物理接口。最终,它会包装底层工具,但您可能会发现使用pipework更容易。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接