为 docker 容器分配 IP 地址?
Posted
技术标签:
【中文标题】为 docker 容器分配 IP 地址?【英文标题】:Assigning IP address to docker containers? 【发布时间】:2013-09-15 18:57:56 【问题描述】:我是 Docker 新手。是否可以将 IP 地址(来自 DHCP 服务器)分配给在主机或 VM 上运行的 Docker 容器?如果是的话,有人可以指出我正确的方向。如果不是,这是容器方法的基本限制,还是只是 Docker 中还没有的功能。
【问题讨论】:
【参考方案1】: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 脚本来包装上述内容。 我觉得 -f 4 后面不需要点号,代码应该是docker inspect container_name | grep IPAddress | cut -d '"' -f 4
另外,你可以做docker inspect -format=".NetworkSettings.IPAddress" container_name
,跳过其余的shell命令
仅供参考,我的 docker inspect 没有任何 IP 信息,尽管 Json 字段在那里。【参考方案2】:
警告 - Docker 正在大力开发,因此建议根据当前文档进行确认。
网络元素是当前在docker-dev
上讨论的元素之一,看起来正在考虑与libvirt 进行更长期的集成。因此,要回答您的问题 NET DHCP 或其他东西可能没有按照您的意愿实现。
在in this blog post 中描述了 Docker 网络的一些实现方式。目前CreateBridgeIface
中的一组IP范围在network.go中。
与此同时,您可能想查看pipework,这是一个旨在与 Docker 一起用于各种网络配置的工具。这将允许您在容器上添加和修改 IP 地址,创建专用网络并将容器连接到物理接口。最后,它封装了较低级别的工具,但您可能会发现使用pipework
更容易。
【讨论】:
以上是关于为 docker 容器分配 IP 地址?的主要内容,如果未能解决你的问题,请参考以下文章