问题与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频道上。