首页 > 解决方案 > 在不提供特定 IP 地址的情况下将 docker 容器端口绑定到 eth0

问题描述

我看到我可以简单docker run -p SOME_IP_ADDRESS:25:25地将容器绑定到某个接口上的端口,但是假设我正在使用 puppet 启动多个具有 docker 启动容器的实例,我不一定知道实例接口的 IP 是什么会,然后呢?

例如,里面/etc/systemd/system/SOME_APPLICATION.service是我的ExecStart=/usr/bin/docker run -p 0.0.0.0:25:25 SOME_CONTAINER命令,所以当实例启动时,docker 将启动我的容器。

我不知道实例的确切 IP 是什么,所以我不知道应该将哪个 IP 地址传递到docker run -p SOME_IP_ADDRESS:25:25.

有没有办法docker run -p eth0:25:25让任何 IP eth0 都成为容器端口绑定的 IP 地址?

标签: dockernetworkingcontainerspuppet

解决方案


我只需要使用 puppet 的核心事实https://puppet.com/docs/puppet/5.5/lang_template_epp.html

ExecStart=/usr/bin/docker run -p <%= $facts[networking][interfaces][eth0][ip] %>:25:25

推荐阅读