Docker 容器固定 IP


前言

雖然使用 docker 部署容器實現所需邀的功能非常方便,但是這是建立在 docker 部署容器時的設置完善的情況下。

部署容器時有一點不可避免:固定容器 IP 。

如果沒有固定分配的 IP ,容器提供的服務將是不可靠的:

  • 每次主機重啟時,如果容器沒有固定 IP ,容器的 IP 將由啟動順序決定。這將導致類似無法遠程訪問數據庫等等情況時,發送錯誤的請求,從而使得服務提供失敗。

創建自定義網絡

默認的 docker0 網絡是不支持容器固定 IP 到該網段的,必須先創建一個自定義網絡,才能固定容器 IP 到這個自定義網絡中。

  • 否則報錯:

    Failure
    user specified IP address is supported on user defined networks only
    

命令行創建

  • 格式:

    sudo docker network create --subnet=[自定義網絡廣播地址]/[子網掩碼位數] [自定義網絡名]
    
  • 示例:

    sudo docker network create --subnet=172.20.0.0/24 yogile0
    
    • --subnet :設置前 24 位為網絡位,后 8 位為主機位,該網段可用 IP 地址:172.20.0.1172.20.0.254

  • 查看更多參數:

    sudo docker network create --hlelp
    

Portainer 圖形化創建

  • Portainer 中,點擊 “Networks” 即可看到網絡列表。

  • 點擊 “Add network” 開始創建網絡。

  • 最簡單的網絡創建需要示例:

    • 最簡單的網絡創建只需要 NameSubnet 信息,更多設置同命令行幫助。
    • Gateway :如果不填默認網關為首位可用主機名(這里是 172.20.0.1)。

  • 點擊最下面的 “Create the network” 即可完成創建網絡。

  • 回到 “Networks” 即可看到網絡列表中多出了網絡 yogile0

固定容器 IP

命令行固定

  • 簡單格式:

    • 注意:“選定網絡下固定 IP 地址” 不可是網關地址。

      如果設置網絡時,不填網關,默認為首位可用主機名(這里是 172.20.0.1)

    sudo docker run -it --name [容器名] --net [網絡名] --ip [選定網絡下固定 IP 地址] ubuntu:latest /bin/bash
    
  • 示例:

    sudo docker run -it --name network-test --net yogile0 --ip 172.20.0.2 ubuntu:latest /bin/bash
    

Portainer 圖形化固定

  • 創建容器,或者進入一個容器的管理界面時,在 “Advanced container settings -> Network” 中設置固定 IP 。

  • 填寫網絡信息。

    • Network :選擇目標網絡名。
    • Hostname :輸入容器網絡名。
    • Domain Name :可設置容器域名。
    • IPv4 Address :設置固定 IP 地址。
    • 其他選項可以按需填寫。

  • 部署容器。

  • 可以看到容器列表中出現創建的容器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM