最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)境適配等注意事項,并對比靜態(tài)與動態(tài)IP的優(yōu)缺點,提供最佳實踐建議

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

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

方法一:使用自定義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. 運行容器并分配靜態(tài)IP
docker run -d --name web-server \
  --network my-static-net \
  --ip 172.20.5.10 \
  nginx:alpine

# 3. 驗證IP分配
docker exec web-server ip addr show eth0

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

當容器需要直接接入物理網(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. 運行容器并分配靜態(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

啟動服務:

docker-compose up -d

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

修改已運行容器的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重新運行容器
docker run -d --name my-container \
  --network custom-net \
  --ip 10.5.0.100 \
  nginx:alpine

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

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

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

注意事項及常見問題解決

IP地址沖突

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

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

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

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

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ò)配置需要手動管理自動分配
適用場景服務發(fā)現(xiàn)、固定端點的應用臨時性、無狀態(tài)應用
容器間通信可直接通過IP訪問需要通過容器名或服務名

最佳實踐建議

使用自定義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ù)實際需求為Docker容器配置靜態(tài)IP地址,確保網(wǎng)絡(luò)配置的穩(wěn)定性和可預測性。

總結(jié)

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

相關(guān)文章

  • docker安裝nginx并配置通過https訪問的方法

    docker安裝nginx并配置通過https訪問的方法

    這篇文章主要介紹了docker安裝nginx并配置通過https訪問的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Docker?安裝?Consul單機模式的操作方法

    Docker?安裝?Consul單機模式的操作方法

    這篇文章主要介紹了Docker?安裝?Consul單機模式,本文給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • Docker利用busybox創(chuàng)建基礎(chǔ)鏡像(base image)

    Docker利用busybox創(chuàng)建基礎(chǔ)鏡像(base image)

    今天小編就為大家分享一篇關(guān)于Docker利用busybox創(chuàng)建基礎(chǔ)鏡像(base image),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Docker核心命令與實踐指南示例詳解

    Docker核心命令與實踐指南示例詳解

    本文系統(tǒng)整理Docker的核心概念與常用命令,涵蓋鏡像管理、容器操作、數(shù)據(jù)存儲、網(wǎng)絡(luò)配置、Compose 編排以及 Dockerfile 構(gòu)建等內(nèi)容,感興趣的朋友跟隨小編一起看看吧
    2025-06-06
  • windows下安裝docker的教程詳解

    windows下安裝docker的教程詳解

    這篇文章主要介紹了windows安裝docker的教程,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • Dockerfile中multi-stage(多階段構(gòu)建)詳解

    Dockerfile中multi-stage(多階段構(gòu)建)詳解

    在2017年5月3日即將發(fā)行的 Docker 17.05.0-ce 中,Docker 官方提供了簡便的多階段構(gòu)建 (multi-stage build) 方案,下面這篇文章主要給大家介紹了關(guān)于Dockerfile中multi-stage(多階段構(gòu)建)的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2018-03-03
  • 將博客遷移至docker紀實

    將博客遷移至docker紀實

    作者個人博客一直是跑在阿里云主機上的,最近接觸了docker 心血來潮想把自己的應用打包到docker容器中去,方便以后的遷移部署,這里把經(jīng)驗給大家總結(jié)分享下
    2017-05-05
  • Docker安裝beef-xss的步驟

    Docker安裝beef-xss的步驟

    這篇文章主要介紹了Docker安裝beef-xss的步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-04-04
  • Docker制作MySQL鏡像并使用`/docker-entrypoint-initdb.d/`問題

    Docker制作MySQL鏡像并使用`/docker-entrypoint-initdb.d/`問題

    這篇文章主要介紹了Docker制作MySQL鏡像并使用`/docker-entrypoint-initdb.d/`問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Docker的徹底刪除與重新安裝完整步驟(ubuntu22.04)

    Docker的徹底刪除與重新安裝完整步驟(ubuntu22.04)

    Docker是一種輕量級的容器化平臺,可以幫助開發(fā)人員將應用程序及其依賴項打包成一個可移植的容器,這篇文章主要介紹了Docker的徹底刪除與重新安裝完整步驟的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2025-03-03

最新評論

颍上县| 大余县| 砚山县| 宽甸| 绥阳县| 开阳县| 茌平县| 保定市| 息烽县| 新源县| 石棉县| 海兴县| 肥乡县| 繁昌县| 兴安县| 正定县| 皮山县| 巩留县| 平利县| 东辽县| 奈曼旗| 靖西县| 泸水县| 凯里市| 信宜市| 民县| 塘沽区| 同心县| 海淀区| 昂仁县| 红安县| 密云县| 青神县| 辽中县| 林周县| 云林县| 耒阳市| 夏河县| 寿光市| 新兴县| 丹巴县|