欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker中設(shè)置靜態(tài)IP地址方式

 更新時間:2025年07月22日 14:33:52   作者:深山技術(shù)宅  
本文介紹了Docker容器設(shè)置靜態(tài)IP的四種方法,包括自定義bridge網(wǎng)絡(luò)(推薦)、macvlan網(wǎng)絡(luò)(物理IP接入)、docker-compose配置及修改現(xiàn)有容器,涵蓋IP沖突解決、云環(huán)境適配等注意事項(xiàng),并對比靜態(tài)與動態(tài)IP的優(yōu)缺點(diǎn),提供最佳實(shí)踐建議

Docker容器設(shè)置靜態(tài)IP地址

在Docker中為容器分配靜態(tài)IP地址有多種方法,以下是詳細(xì)的解決方案:

方法一:使用自定義bridge網(wǎng)絡(luò)(推薦)

這是最常用的靜態(tài)IP分配方式,適用于大多數(shù)場景:

# 1. 創(chuàng)建自定義網(wǎng)絡(luò)
docker network create \
  --driver=bridge \
  --subnet=172.20.0.0/16 \
  --gateway=172.20.0.1 \
  --ip-range=172.20.5.0/24 \
  my-static-net

# 2. 運(yùn)行容器并分配靜態(tài)IP
docker run -d --name web-server \
  --network my-static-net \
  --ip 172.20.5.10 \
  nginx:alpine

# 3. 驗(yàn)證IP分配
docker exec web-server ip addr show eth0

方法二:使用macvlan網(wǎng)絡(luò)(容器獲取物理網(wǎng)絡(luò)IP)

當(dāng)容器需要直接接入物理網(wǎng)絡(luò)時:

# 1. 創(chuàng)建macvlan網(wǎng)絡(luò)
docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  --ip-range=192.168.1.100/28 \
  -o parent=eth0 \
  macvlan-static

# 2. 運(yùn)行容器并分配靜態(tài)IP
docker run -d --name network-app \
  --network macvlan-static \
  --ip=192.168.1.101 \
  nginx:alpine

方法三:使用docker-compose配置靜態(tài)IP

適用于docker-compose部署場景:

version: '3.7'

services:
  web:
    image: nginx:alpine
    networks:
      static-net:
        ipv4_address: 172.22.0.10

  db:
    image: postgres:13
    networks:
      static-net:
        ipv4_address: 172.22.0.20

networks:
  static-net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.22.0.0/24
          gateway: 172.22.0.1

啟動服務(wù):

docker-compose up -d

方法四:修改現(xiàn)有容器的IP地址

修改已運(yùn)行容器的IP需要重新創(chuàng)建容器:

# 1. 停止并刪除容器
docker stop my-container && docker rm my-container

# 2. 創(chuàng)建自定義網(wǎng)絡(luò)(如果尚未創(chuàng)建)
docker network create --subnet=10.5.0.0/16 custom-net

# 3. 使用新IP重新運(yùn)行容器
docker run -d --name my-container \
  --network custom-net \
  --ip 10.5.0.100 \
  nginx:alpine

驗(yàn)證靜態(tài)IP配置

# 檢查容器IP
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web-server

# 進(jìn)入容器測試網(wǎng)絡(luò)
docker exec -it web-server sh
ping 8.8.8.8

注意事項(xiàng)及常見問題解決

IP地址沖突

  • 解決方案:使用--ip-range限制可用IP范圍
  • 檢查IP是否可用:ping <目標(biāo)IP>

默認(rèn)bridge網(wǎng)絡(luò)不支持靜態(tài)IP

  • 必須創(chuàng)建自定義網(wǎng)絡(luò)

macvlan網(wǎng)絡(luò)宿主機(jī)無法訪問容器

sudo ip link add host-macvlan link eth0 type macvlan mode bridge
sudo ip addr add 192.168.1.99/24 dev host-macvlan
sudo ip link set host-macvlan up
  • 解決方法:創(chuàng)建macvlan接口

云環(huán)境限制問題

docker network create -d ipvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 \
  -o ipvlan_mode=l2 \
  ipvlan-net
  • 解決方案:改用ipvlan模式

靜態(tài)IP與動態(tài)IP對比

特性靜態(tài)IP動態(tài)IP
地址穩(wěn)定性永久固定容器重啟可能改變
網(wǎng)絡(luò)配置需要手動管理自動分配
適用場景服務(wù)發(fā)現(xiàn)、固定端點(diǎn)的應(yīng)用臨時性、無狀態(tài)應(yīng)用
容器間通信可直接通過IP訪問需要通過容器名或服務(wù)名

最佳實(shí)踐建議

使用自定義DNS名稱替代IP

docker run -d --name service1 --network my-net nginx
docker run -d --name service2 --network my-net alpine ping service1

結(jié)合端口映射使用

docker run -d --name web \
  --network my-static-net \
  --ip 172.20.5.10 \
  -p 8080:80 \
  nginx:alpine

多容器網(wǎng)絡(luò)配置

docker network create app-network --subnet=10.1.0.0/24

docker run -d --name db \
  --network app-network \
  --ip 10.1.0.100 \
  postgres

docker run -d --name app \
  --network app-network \
  --ip 10.1.0.101 \
  -e DB_HOST=10.1.0.100 \
  my-app-image

通過以上方法,您可以根據(jù)實(shí)際需求為Docker容器配置靜態(tài)IP地址,確保網(wǎng)絡(luò)配置的穩(wěn)定性和可預(yù)測性。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Docker鏡像端口映射的原理及實(shí)現(xiàn)

    Docker鏡像端口映射的原理及實(shí)現(xiàn)

    在使用Docker時,端口映射是一個重要的概念,本篇博客將向您介紹什么是端口映射,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Docker?pull鏡像拉取失敗完整解決過程

    Docker?pull鏡像拉取失敗完整解決過程

    這篇文章主要介紹了Docker?pull鏡像拉取失敗解決的相關(guān)資料,包括編輯daemon.json文件、重啟Docker服務(wù)、查詢替換結(jié)果以及處理可能的重啟問題,文中通過代碼介紹的非常詳細(xì)需要的朋友可以參考下
    2025-04-04
  • Docker文件映射實(shí)現(xiàn)主機(jī)與容器間目錄的雙向映射

    Docker文件映射實(shí)現(xiàn)主機(jī)與容器間目錄的雙向映射

    本地文件系統(tǒng)和容器中的文件系統(tǒng)之間的交互是一項(xiàng)必不可少的功能,本文主要介紹了Docker文件映射實(shí)現(xiàn)主機(jī)與容器間目錄的雙向映射,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Dockerfile文件編寫及構(gòu)建鏡像命令解析

    Dockerfile文件編寫及構(gòu)建鏡像命令解析

    這篇文章主要為大家介紹了Dockerfile文件編寫及Dockerfile構(gòu)建鏡像命令解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • 使用Docker CE 還是 Docker EE

    使用Docker CE 還是 Docker EE

    這篇文章主要介紹了使用Docker CE 還是 Docker EE,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2007-06-06
  • Docker安裝beef-xss的步驟

    Docker安裝beef-xss的步驟

    這篇文章主要介紹了Docker安裝beef-xss的步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-04-04
  • docker安裝elasticsearch和kibana的方法步驟

    docker安裝elasticsearch和kibana的方法步驟

    這篇文章主要介紹了docker安裝elasticsearch和kibana的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • docker如何運(yùn)行一個python腳本

    docker如何運(yùn)行一個python腳本

    這篇文章主要介紹了docker如何運(yùn)行一個python腳本問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 一篇文章讓你搞清楚docker常用命令

    一篇文章讓你搞清楚docker常用命令

    這篇文章主要介紹了一篇文章讓你搞清楚docker常用命令的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 如何解決docker logs無法實(shí)時輸出腳本打印的內(nèi)容

    如何解決docker logs無法實(shí)時輸出腳本打印的內(nèi)容

    這篇文章主要介紹了如何解決docker logs無法實(shí)時輸出腳本打印的內(nèi)容問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論