问题与SaltStack Docker-py端口绑定tcp和udp到相同的端口
您好,我有一个问题,通过SaltStack和dockerio模块configurationTCP和UDP到同一个端口。 在这种情况下,我正在尝试为TCP和UDP端口53configurationDNS。
主人和奴才的环境都是一样的,细节是:
Ubuntu 15.04 lxc-docker 1.6.2 package (from deb https://get.docker.com/ubuntu docker main) salt-common 2015.5.0+ds-1utopic1 package salt-minion 2015.5.0+ds-1utopic1 package (salt-minion 2015.5.0 (Lithium)) salt-master 2015.5.0+ds-1utopic1 package (salt-master 2015.5.0 (Lithium)) docker-py 1.2.2
从容器的Dockerfile中:
EXPOSE 53 EXPOSE 53/udp
来自state.sls文件的相关的SaltStackconfiguration(在docker.running中):
{% set hostport1 = '53' %} {% set hostport1_proto = 'udp' %} {% set hostport2 = '53' %} {% set hostport2_proto = 'tcp' %} ... - ports: "{{ hostport1 }}/{{ hostport1_proto }}": HostIp: "" HostPort: "{{ hostport1 }}" "{{ hostport2 }}/{{ hostport2_proto }}": HostIp: "" HostPort: "{{ hostport2 }}" ...
容器启动并成功运行。 问题是只有TCP端口被映射,UDP端口保持未映射。 我列出TCP和UDP端口的顺序并不重要,只有TCP端口是通过docker映射的。
From docker ps -a: 0.0.0.0:53->53/tcp, 53/udp
我已经浏览了所有可以find的信息,并且看到了与docker-py有关的较旧的已closures的问题,但最近并没有看到任何其他人遇到这个问题。
我已经确认,手动运行容器可以正常工作并映射端口:
docker run ... -p 53:53 -p 53:53/udp ... docker ps -a ... 0.0.0.0:53->53/tcp, 0.0.0.0:53->53/udp ...
因此,这向我确认这个问题的来源或错误configuration在docker-py或SaltStack中。 任何信息或configuration提示将不胜感激。 谢谢。
此问题的来源是HostIp:字段的configuration。 使用空白值“”是不可接受的。 相反,将HostIp设置为“0.0.0.0”可以完全解决此问题。 这方面的文件不清楚。
非常感谢和信任在Freenode IRC的#salt频道上。