将docker容器端口绑定到eth0而不提供特定的IP地址

时间:2019-02-06 13:44:22

标签: docker networking containers puppet

我看到我可以简单地执行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地址?

1 个答案:

答案 0 :(得分:1)

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

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