微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure Edge 模块的自定义 Ip 端口转发

如何解决Azure Edge 模块的自定义 Ip 端口转发

我正在尝试在 Azure 边缘模块中运行测试演示服务器,该服务器将在

X-ip:8080 端口,这里我想要 X 是任何东西。

我尝试像这样在部署模板文件中绑定主机端口和docker端口

              "createOptions": {
            "HostConfig": {
              "PortBindings": {
                "8080/tcp": [
                  {
                    "HostPort": "8080"
                  }
                ]
              }
          }

并在docker文件中暴露8080端口

FROM amd64/python:3.7-slim-buster

workdir /app

copY requirements.txt ./
RUN pip install -r requirements.txt

copY . .

EXPOSE 8080

CMD [ "python3","-u","./main.py" ]

我能够运行服务器,但是如果我想从主机的本地主机访问它,我必须在 0.0.0.0 IP 处启动服务器,因为 8080 端口仅映射到 0.0.0.0 IP,下面一目了然

CONTAINER ID   IMAGE                                        COMMAND                   CREATED              STATUS              PORTS                                                                  NAMES
d334000c6554   some add /server:0.0.3-amd64   "python3 -u ./main.py"    About a minute ago   Up 43 seconds       0.0.0.0:8080->8080/tcp    

如何将这个“0.0.0.0”自定义为我们想要的 IP 地址,从 0.0.0.0 到 127.0.0.1 之类的东西

解决方法

请修改deployment.template.json,使生成的docker不占用机器的IP地址。

  "createOptions": {
  "NetworkingConfig": {
    "EndpointsConfig": {
      "host": {}
    }
  },"HostConfig": {
    "NetworkMode": "host"
  }
}

参考文献:Azure Iotedge start docker with --net=host so that I can access my IP https://docs.microsoft.com/en-us/azure/iot-edge/how-to-use-create-options?view=iotedge-2020-11

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。