docker網絡配置之自定義網橋


使用特定范圍的 IP (僅適用於v1.x)不適用於新版的v1.1x

Docker 會嘗試尋找沒有被主機使用的 ip 段,盡管它適用於大多數情況下,但是它不是萬能的,有時候我們還是需要對 ip 進一步規划。Docker 允許你管理 docker0 橋接或者通過-b選項自定義橋接網卡,需要安裝bridge-utils軟件包。

基本步驟如下:

    • ensure Docker is stopped
      • # 確保 docker 的進程是停止的
    • create your own bridge (bridge0 for example)
      • # 創建自定義網橋
    • assign a specific IP to this bridge
      • # 給網橋分配特定的 ip
    • start Docker with the -b=bridge0 parameter
      • # 以 -b 的方式指定網橋

 

除了默認的 docker0 網橋,用戶也可以指定網橋來連接各個容器。
在啟動 Docker 服務的時候,使用 -b BRIDGE 或 --bridge=BRIDGE 來指定使用的網橋。
如果服務已經運行,那需要先停止服務,並刪除舊的網橋。
$ sudo service docker stop
$ sudo ip link set dev docker0 down
$ sudo brctl delbr docker0
然后創建一個網橋 bridge0 。
$ sudo brctl addbr bridge0
$ sudo ip addr add 10.0.200.1/24 dev bridge0
$ sudo ip link set dev bridge0 up
查看確認網橋創建並啟動。
$ ip addr show bridge0
4: bridge0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group default
link/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ff
inet 10.0.200.1/24 scope global bridge0
valid_lft forever preferred_lft forever
配置 Docker 服務,默認橋接到創建的網橋上,並為
$vim /etc/sysconfig/docker

other_args='--insecure-registry 10.0.30.5:5000 --graph=/data/docker/images -b=bridge0'
$ sudo service docker start
啟動 Docker 服務。 新建一個容器,可以看到它已經橋接到了 bridge0 上。
可以繼續用 brctl show 命令查看橋接的信息。另外,在容器中可以使用 ip addr 和 ip route 命令來
查看 IP 地址配置和路由信息。

5.外部主機想要訪問容器內IP時,需要添加靜態回執路由 

route add -net 10.0.200.0 netmask 255.255.255.0 gw 10.0.30.6容器所在的宿主機IP

 ------------------------------------------------------------------------------------------------------

新版的docker v1.1x.x 相關配置,不需要自己手動創建網橋

dockerd --graph=/data/docker/ &
docker network create --subnet=10.0.200.0/24 --gateway=10.0.200.1 house200   該命令會創建一個網橋
docker run -itd --network house200 --ip 10.0.200.10 --name mycentos centos:6.6 /bin/bash

 

參考官方文檔: https://docs.docker.com/engine/tutorials/networkingcontainers/


免責聲明!

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



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