gpt4 book ai didi

docker - SaltStack Docker-py 端口将 tcp 和 udp 绑定(bind)到同一端口的问题

转载 作者:行者123 更新时间:2023-12-02 20:27:25 24 4
gpt4 key购买 nike

您好,我在通过 SaltStack 和 dockerio 模块将 TCP 和 UDP 配置到同一端口时遇到问题。在这种情况下,我尝试为 TCP 和 UDP 端口 53 配置 DNS。

master和minion的环境是一样的,具体如下:

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 文件中 SaltStack 的相关配置(在 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

我查看了我能找到的所有信息,并且我看到了与 docker-py 相关的较旧的已关闭问题,但最近没有任何问题,而且似乎没有其他人遇到此问题。

我已经确认手动运行容器确实可以正常工作并正确映射端口:
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 ...

所以这向我证实了这个问题的根源或错误配置是在 docker-py 或 SaltStack 中。任何信息或配置提示将不胜感激。谢谢。

最佳答案

此问题的根源是 HostIp: 字段的配置。使用空白值“”是 Not Acceptable 。相反,将 HostIp 设置为“0.0.0.0”可以完全解决此问题。这方面的文档不清楚。

非常感谢和感谢 Freenode IRC 上#salt channel 的 mosen。

关于docker - SaltStack Docker-py 端口将 tcp 和 udp 绑定(bind)到同一端口的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30522816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com