首頁  >  問答  >  主體

docker 怎麼在主機轉送請求到各個容器裡處理?

剛開始折騰docker沒幾天。

像我做一個web伺服器,nginx放在主機裡,在docker裡建了幾個php-fpm的容器,打算用nginx轉送到容器裡做負載平衡(測試,搞著玩的)。然後發現,在nginx的設定裡寫的轉址,不好寫啊。每次重啟容器,都會自動重新分配一個新的ip,那我在主機nginx配置裡寫的轉送位址,就會出錯。 。 。

在網路上看了很多,都說可以把容器弄成固定ip的,但各種麻煩,要自己弄網卡之類的,而且也不完美,據說重啟後也是會重新分配,還需要再執行一次。 。 。

大家有沒有什麼好的思路,求解答

大家讲道理大家讲道理2706 天前626

全部回覆(3)我來回復

  • 阿神

    阿神2017-04-25 09:03:25

    兩種方法:

    1. php容器用-p 把連接埠央射到主機, 然後nginx 轉送到localhost:[映射的連接埠]

    2. 把nginx放容器, 把php容器link過來, nginx 轉寄到linkname:port

    回覆
    0
  • 阿神

    阿神2017-04-25 09:03:25

    LZ看來一定要在host上運行nginx。這裡有一個可以動態改變upstream的東東。結合docker inspect可以搞定:

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-25 09:03:25

    docker inspect --format='{{.NetworkSettings.IPAddress}}' [CONTAINER_ID]
    

    這個指令可以拿到 ip,自己寫個自動化腳本產生 nginx config 吧

    回覆
    0
  • 取消回覆