docker 怎么在主机转发请求到各个容器里进行处理?

 浪漫的没天份 发布于 2022-10-25 04:38

刚开始折腾docker没几天。

比如我做一个web服务器,nginx放在主机里,在docker里建了几个php-fpm的容器,打算用nginx转发到容器里做负载均衡(测试,搞着玩的)。然后发现,在nginx的配置里写的转发地址,不好写啊。每次重启容器,都会自动重新分配一个新的ip,那我在主机nginx配置里写的转发地址,就会出错。。。

在网上看了很多,都说可以把容器弄成固定ip的,但各种麻烦,要自己弄网卡之类的,而且也不完美,据说重启后也是会重新分配,还需要再执行一次。。。

大家有没有什么好的思路,求解答

3 个回答
  • docker inspect --format='{{.NetworkSettings.IPAddress}}' [CONTAINER_ID]
    

    这个命令可以拿到 ip,自己写个自动化脚本生成 nginx config 吧

    2022-11-12 01:39 回答
  • LZ看来一定要在host上运行nginx。这里有一个可以动态改变upstream的东东。结合docker inspect可以搞定:

    https://github.com/yzprofile/...

    2022-11-12 01:39 回答
  • 两种方法:

    1. php容器用-p 把端口央射到主机, 然后nginx 转发到localhost:[映射的端口]

    2. 把nginx放容器, 把php容器link过来, nginx 转发到linkname:port

    2022-11-12 01:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有