V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
GooMS
V2EX  ›  问与答

請教一個 docker 隨機映射程序端口的問題

  •  
  •   GooMS · 2018-02-09 12:11:44 +08:00 via Android · 1899 次点击
    这是一个创建于 2486 天前的主题,其中的信息可能已经有所发展或是发生改变。
    程序默認會監聽一些端口段並隨機使用,以此避免競爭。
    現在想要用 Docker 集群,不再和硬件打交道。

    但是端口這裡遇到問題,-P 指定的都是固定端口,如果隨機在一台機器運行多個程序那麼端口的競爭該如何處理呢?
    請大家給一些思路,謝謝
    第 1 条附言  ·  2018-02-09 13:01:05 +08:00
    是程序需要監聽一些端口入和出口,那麼程序端口都是固定的,如何解決在一台機器部署多個 docker 端口衝突的問題?是否有方案解決? 現在在程序已經實現了自動檢查範圍內可以使用的端口。
    9 条回复    2018-02-09 20:18:44 +08:00
    Rheinmetal
        1
    Rheinmetal  
       2018-02-09 12:31:02 +08:00 via Android
    haproxy 转发
    Anonym0u5
        2
    Anonym0u5  
       2018-02-09 12:32:34 +08:00 via Android
    没明白你的意思
    rogwan
        3
    rogwan  
       2018-02-09 12:55:09 +08:00 via Android
    运营商一层映射,云服务器一层映射,docker 一层映射
    Reficul
        4
    Reficul  
       2018-02-09 12:56:45 +08:00 via Android   ❤️ 1
    要么交给 docker 自动分配主机端口,要么 host 模式交给你自己程序来随机监听端口
    GooMS
        5
    GooMS  
    OP
       2018-02-09 13:03:05 +08:00 via Android
    @Reficul docker 自動分配的可以轉發程序監聽端口的數據嗎
    GooMS
        6
    GooMS  
    OP
       2018-02-09 13:14:32 +08:00 via Android
    @Reficul 是不是說自動分配端口,我只要把程序端口範圍設置到 49000..49900
    Reficul
        7
    Reficul  
       2018-02-09 14:41:04 +08:00
    主机上暴露的端口可以是随机的,不指定就好了,容器内监听的端口固定。
    比如 docker run -p 80 xxx
    会暴露容器内的 80 端口到主机随机的一个可用端口。
    yuanfnadi
        8
    yuanfnadi  
       2018-02-09 18:34:12 +08:00
    其實你可以在容器直接加一層網絡。例如 weave
    然後容器之間可以相互訪問,而且和 IP 和機器無關。然後擁有全部端口。
    conn4575
        9
    conn4575  
       2018-02-09 20:18:44 +08:00 via Android
    consul+registrator+nginx/haproxy
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2719 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:18 · PVG 20:18 · LAX 04:18 · JFK 07:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.