如何解决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 举报,一经查实,本站将立刻删除。