你们把 Nginx 放宿主机上跑,那怎么转发请求到 Docker 容器? - V2EX
thisisgpy

你们把 Nginx 放宿主机上跑,那怎么转发请求到 Docker 容器?

  •  
  •   thisisgpy Aug 22, 2017 5322 views
    This topic created in 3184 days ago, the information mentioned may be changed or developed.

    给容器指定固定 IP ?还是每次容器启动跑进去看看 IP 再出来配?有没有容器启动后自己在宿主机的 hosts 里添加一条自己的映射的方案?

    12 replies    2017-08-22 17:35:59 +08:00
    dcalsky
        1
    dcalsky  
       Aug 22, 2017 via Android
    container can expose the port to host machine
    你只要转发给暴露出来的端口就好啦
    thisisgpy
        2
    thisisgpy  
    OP
       Aug 22, 2017
    @dcalsky 就是不想暴露端口,服务器上只开个 nginx 的 80
    dcalsky
        3
    dcalsky  
       Aug 22, 2017 via Android
    @thisisgpy 你是怕暴露端口有安全问题吗?没事的,你暴露出的是内网端口,只要不暴露到外网去都不会有问题,如果实在害怕,就加安全组。
    terrawu
        4
    terrawu  
       Aug 22, 2017
    docker-gen
    jarlyyn
        5
    jarlyyn  
       Aug 22, 2017
    难道不是自己组建一个 network,然后指定 ip 么…………
    jarlyyn
        6
    jarlyyn  
       Aug 22, 2017
    大概这样

    docker run --network=jarln.com --ip=10.1.1.2 --name blog -v /var/www/data:/goapp --entrypoint=/goapp/bin/blog --restart always debian
    ryd994
        7
    ryd994  
       Aug 22, 2017 via Android   1
    publish 可以选地址的
    -p 127.0.0.1:8000:80
    就可以
    @thisisgpy
    @dcalsky
    @jarlyyn
    ryd994
        8
    ryd994  
       Aug 22, 2017 via Android
    还有一种更安全一点的做法,适合配合 compose 或其他编排系统:
    再开一个 socat 容器,link 后端容器,socat 转发后端端口到 socs 文件
    socks 文件所在文件夹 mount 出来用
    通过对 socks 文件设置权限,可以实现更精细的权限控制
    不过一般来说本地程序都可信,127.0.0.1 也算够用了
    jarlyyn
        9
    jarlyyn  
       Aug 22, 2017
    @ryd994

    我试下来这个方案最好

    -p 127.0.0.1 的访问问题有两个,第一次每次都必须是不同的端口,端口和配置文件会很混乱

    第二是效率问题。
    做压力测试的时候会发现 docker-proxy 占用很高。

    用 socks 的问题就更坑了,有个不同容器启动顺序的问题。

    所以后来都是自己组个 network,异常好用。
    ryd994
        10
    ryd994  
       Aug 22, 2017 via Android
    @jarlyyn 我 userland-proxy=false,docker-proxy 根本不走数据,只负责占用端口
    有些内核 iptables 不支持 nat 到 127.0.0.1
    我用的是 CentOS 7
    不要单纯-p 127.0.0.1,-p 到随机端口还有什么意思嘛。明确指定本地端口号,人工维护本地端口号分配。一共就那么几种服务,按自己习惯分配一下就行了
    启动顺序这个,所以我说要配合编排系统。compose 里 link 会隐含 depend
    组 network 你还不是要人工维护地址分配
    jarlyyn
        11
    jarlyyn  
       Aug 22, 2017
    @ryd994

    组 network 优点是有 dns 啊
    hcymk2
        12
    hcymk2  
       Aug 22, 2017
    link 已经不推荐使用了 还是自己组网好。
    About     Help     Advertise     Blog     API     FAQ     Solana     1002 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 70ms UTC 22:04 PVG 06:04 LAX 15:04 JFK 18:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86