关于使用docker安装的nginx做端口转发 go端口会被占用问题
1. 运行环境
docker
+ go build
编译后的可执行文件
2. 问题描述?
现在的问题是我使用了docker
安装了nginx
(容器内),可执行文件在主机,所以直接配置会存在问题(因为容器内端口没有作用),尝试使用配置映射端口的方式,但结果会因为端口被绑定,导致可执行文件无法运行。
容器[nginx(80)->端口8080(无运行程序)] ≠ 主机[可执行文件 (端口8080)]
3. 您期望得到的结果?
不考虑将可执行文件放入容器内解决。也不借助其他工具的情况下有办法直接实现将容器内的端口转发,转发至主机上的可执行文件。
核心就是容器的nginx可以代理主机的可执行文件即可。
容器[nginx(80)->端口8080] ===(某种方式映射)===主机[可执行文件 (端口8080)]
4. 您实际得到的结果?
暂时会因端口占用而无法实现,有其他方案能解决(可执行文件放入容器/再通过加多一次转发代理完成),只是看有没有更好的方法学习一下。
nginx容器网络改成host
nginx内设置go服务地址为
真机IP:8080
即可谢谢两位的回答
经过的半天查阅资料和学习 确实直接在
nginx
使用ip:port
即可但和我理想还是有点差距 最好的方式希望通过配置
docker
实现容器使用宿主机的服务最终找到最佳方案到可以在
docker-compose.yml
中加入还可以修改
network
的模式等方式