为 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 地址?的主要内容,如果未能解决你的问题,请参考以下文章

Docke容器分离部署LNMP

docker mysql 容器 数据库文件怎么娴宿主机器上

Docker网络模式

将 LAN IP 地址分配给与主机 IP 地址不同的 Docker 容器

FW Docker为容器分配指定物理网段的静态IP

为 Docker 容器分配静态 IP