【问题标题】:Configure Docker Container to receive messages via port not working as expected配置 Docker 容器以通过端口接收消息未按预期工作
【发布时间】:2016-05-26 23:08:54
【问题描述】:

我尝试指定 -p 23456:23456 和 -P,并且我正在将我的应用程序用于机器人技术,它通过该端口建立双向通信。从容器到车辆驾驶员计算机,它发送到达它的消息,因为它“联机”。但是,它很快就失败了,我相信这是因为它无法通过该端口将消息发送到 docker 容器中并且它超时。

我看到this 发布了关于为什么无法从本地网络上的计算机 ping 容器的帖子,但我能做些什么来解决这个问题?我需要本地网络上的计算机来与 docker 容器通信。

感谢您的帮助。

【问题讨论】:

    标签: docker


    【解决方案1】:

    您的容器直接向车辆驱动程序发送消息,但在您的情况下,您的车辆驱动程序应将其消息发送到 docker 位于端口 23456 上的机器(在该端口上侦听并将其转发到右容器)

    示例:docker run --name container-name -p 80:8080 container-image

    要访问它,您应该 ping dockerhost:80,这将转发容器端口 8080 上的 ping 来自https://docs.docker.com/engine/userguide/networking/default_network/binding/

    默认情况下,Docker 容器可以与外界建立连接,但外界无法连接到容器。由于 Docker 服务器在启动时创建的主机上的 iptables 伪装规则,每个传出连接似乎都源自主机自己的 IP 地址之一

    【讨论】:

    • 就是这样!我只是在检查答案之前找到了它,但是,是的,一旦我将机器人平台设置为向主机 IP(而不是容器)发送消息,一切都被正确转发,我自然能够发送传出消息。我使用 Wireshark 进行一些调试。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2019-01-08
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多