当前位置:  开发笔记 > 运维 > 正文

默认情况下,docker容器可以调用host的localhost UDP吗?

如何解决《默认情况下,docker容器可以调用host的localhostUDP吗?》经验,为你挑选了1个好方法。

我有一个docker容器,并且还在VM上安装了一个守护程序,用于在端口8125上侦听UDP.容器在此8125端口上使用UDP协议发送数据.

我试图通过启动容器来打开端口-p 8125:8125/udp,但是我收到以下错误:

Error starting userland proxy: listen udp 0.0.0.0:8125: bind: address already in use

这是有道理的,因为守护进程已经在侦听此端口.

那么如何配置Docker以便容器可以将UDP有效负载发送到外部守护进程?



1> Boynux..:

只有在您想要侦听未发送的请求时才需要打开端口.默认情况下,Docker为容器提供必要的网络命名空间,以便与主机或外部世界进行通信.

所以,你可以用两种方式:

    --net host在你的使用docker run和发送请求,localhost:8125在这种情况下,您的容器化应用程序有效地共享主机的网络堆栈.因此localhost指向已在主机中运行的守护程序.

    与容器网络网关(通常是172.17.0.1)或您的容器中的主机主机名进行通信.然后您就可以将数据包发送到主机中的守护程序.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有