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