手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

幫助中心 >  行業資訊 >  云計算 >  從零開始學Docker系列 Docker 容器網絡

從零開始學Docker系列 Docker 容器網絡

2025-02-14 17:55:19 1751

在當今的容器化技術浪潮中,Docker 已成為應用部署的關鍵工具。而其中,Docker 網絡的配置與運用,宛如搭建一座數字城市的交通脈絡,直接決定了容器間以及容器與外部世界的互聯互通。了解 Docker 網絡,是解鎖高效、靈活應用架構的密碼。


一、 Docker 網絡簡介


Docker 提供了多種網絡模式來滿足不同的應用場景需求。通過配置網絡,容器可以與主機、其他容器以及外部網絡進行通信。理解 Docker 的網絡模型和配置方法對于部署復雜的應用架構至關重要。

二、 Docker 默認網絡類型

Docker 默認提供了幾種網絡模式:

2.1 bridge(橋接網絡)

  • 描述:這是 Docker 的默認網絡模式。每個容器都會連接到一個虛擬的網橋 docker0,并通過 NAT 訪問外部網絡。

  • 特點:容器之間可以通過 IP 地址互相通信,但默認情況下無法通過容器名稱直接通信。

2.2 host(主機網絡)

  • 描述:容器與主機共享網絡命名空間,容器可以直接使用主機的網絡接口。

  • 特點:容器不會獲得獨立的 IP 地址,而是直接使用主機的 IP 地址,適用于需要高網絡性能的場景。

2.3 none(無網絡)

  • 描述:禁用網絡功能,容器沒有任何網絡接口。

  • 特點:適用于不需要網絡訪問的場景,如離線批處理任務。

2.4 overlay(覆蓋網絡)

  • 描述:用于跨主機的容器間通信,通常與 Docker Swarm 或 Kubernetes 集群一起使用。

  • 特點:支持多主機間的容器通信,適合分布式應用。

2.5 macvlan(MAC VLAN 網絡)

  • 描述:為每個容器分配一個 MAC 地址,并將其作為獨立設備接入物理網絡。

  • 特點:適用于需要直接訪問物理網絡的場景。

三、 常用網絡命令

3.1 查看網絡

列出當前所有的 Docker 網絡:


docker network ls

3.2 創建網絡

創建一個新的自定義網絡(例如 bridge 網絡):


docker network create my_bridge_network

3.3 刪除網絡

刪除一個指定的網絡:


docker network rm my_bridge_network

3.4 連接容器到網絡

將容器連接到指定的網絡:


docker network connect my_bridge_network my_container

3.5 斷開容器與網絡的連接

斷開容器與指定網絡的連接:


docker network disconnect my_bridge_network my_container

3.6 查看網絡詳細信息

查看指定網絡的詳細信息:


docker network inspect my_bridge_network

四、 實踐示例

為了更好地理解 Docker 網絡的概念和操作,下面我們通過一些實際的例子來演示常見的網絡配置。

示例 1:使用默認 bridge 網絡

1 啟動兩個容器

啟動兩個 Nginx 容器并映射端口:


docker run -d --name web1 -p 8081:80 nginxdocker run -d --name web2 -p 8082:80 nginx

2 驗證容器之間的通信

進入其中一個容器并嘗試 ping 另一個容器:


docker exec -it web1 ping web2

注意:默認情況下,使用默認的 bridge 網絡時,容器不能通過名稱互相通信。你需要使用容器的 IP 地址或者創建自定義的 bridge 網絡。

示例 2:創建自定義 bridge 網絡

1 創建自定義 bridge 網絡


docker network create my_custom_network

2 啟動容器并連接到自定義網絡


docker run -d --name web1 --network my_custom_network nginxdocker run -d --name web2 --network my_custom_network nginx

3 驗證容器之間的通信

進入其中一個容器并嘗試 ping 另一個容器:


docker exec -it web1 ping web2

使用自定義 bridge 網絡時,容器可以通過名稱互相通信。

示例 3:使用 host 網絡

1 啟動容器并使用 host 網絡


docker run -d --name web_host --network host nginx

2 驗證容器的網絡配置

在主機上運行以下命令查看網絡接口:


ip addr show

你會發現容器沒有獨立的網絡接口,而是直接使用主機的網絡接口。

示例 4:使用 macvlan 網絡

1 創建 macvlan 網絡

假設你的主機有一個物理網絡接口 eth0,你可以創建一個 macvlan 網絡:


docker network create -d macvlan \\\\  --subnet=192.168.1.0/24 \\\\  --gateway=192.168.1.1 \\\\  -o parent=eth0 \\\\  my_macvlan_network

2 啟動容器并連接到 macvlan 網絡


docker run -d --name my_macvlan_container --network my_macvlan_network nginx

3 驗證容器的網絡配置

進入容器并檢查其網絡接口:


docker exec -it my_macvlan_container ip addr show

五、 網絡高級配置

5.1 DNS 配置

Docker 提供了一些選項來配置容器的 DNS 設置:

  • --dns:指定 DNS 服務器地址。

  • --hostname:設置容器的主機名。

  • --domainname:設置容器的域名。

示例:


docker run -d --name my_container --dns 8.8.8.8 --hostname mycontainer.example.com nginx

5.2 端口映射

使用 -p 或 --publish 選項將容器的端口映射到主機的端口:


docker run -d --name my_container -p 8080:80 nginx

5.3 端口范圍映射

你還可以映射端口范圍:


docker run -d --name my_container -p 8080-8085:80 nginx



通過對 Docker 網絡的多方面探索,從網絡類型的選擇,到命令的熟練運用,再到高級配置的實踐,我們能看到 Docker 網絡在構建復雜應用架構時的強大支撐能力。它不僅提升了部署效率,更為現代分布式應用的發展鋪平了道路。


想了解更多相關技術小分享可以上藍隊云官網查閱,更多技術問題,也可以直接咨詢。同時,藍隊云整理了運維必備的工具包免費分享給大家使用,需要的朋友可以直接咨詢。


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: