Docker入門五網絡管理

Docker入門五網絡管理

time: 2019-12-9
html

網絡管理

安裝Docker後,會自動建立三個默認的網絡:bridge,host,nonedocker

$ docker network ls           
NETWORK ID          NAME                DRIVER              SCOPE
0fb85b99a496        bridge              bridge              local
88f752db374c        host                host                local
7a374bb494a0        none                null                local

網絡映射

bridge

橋接網絡,在安裝docker會建立一個名字爲docker0的橋接網絡.能夠經過ifconfig查看:bash

$ ifconfig                                                                                     
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:a4:a7:cb:93  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

默認狀況下,每建立一個新容器,都會自動鏈接到bridge網絡.
docker0默認網段是192.168.0.0/20
建立多個容器,會自動分配該網段下的ip, 各個容器能夠使用內網ip直接相互通訊.
須要注意的是,對於默認的bridge每次重啓容器,容器的IP地址都是會發生變化的.
Docker bridge使用端口的方式爲設置端口映射,只是經過iptables實現的.網絡

iptables圖文詳解:https://www.zsythink.net/archives/1199
iptables增刪改查:http://www.zsythink.net/archives/1517tcp

iptables nat表

# 查詢當前規則
sudo iptables -t nat -nvL --line-numbers
# 添加一條規則,大體解釋爲將從非 docker0 接口上,目的端口爲 10002 的 tcp 報文,修改其目的地址爲 192.168.0.3:80
sudo iptables -t nat -A DOCKER ! -i docker0 -p tcp --dport 10002 -j DNAT --to-destination 192.168.0.3:80
# 刪除nat規則
sudo iptables -t nat -D Docker num

iptables fileter表

#查看filter規則
sudo iptables -nvL --line-numbers
# 容許轉發規則
sudo iptables -t filter -A FORWARD ! -i docker0 -o docker0 -p tcp -d 192.168.0.3 -j ACCEPT --dport 80
#或者你也能夠選擇將其加到由 docker 定義的 DOCKER 鏈中,上面的命令和下面的命令選擇其中的一個便可
 sudo iptables -t filter -A DOCKER ! -i docker0 -o docker0 -p tcp -d 192.168.0.3 -j ACCEPT --dport 80
刪除filter規則
sudo iptables -D Docker num

自定義網絡

docker 在安裝時會默認建立一個橋接網絡,除了使用默認網絡以外,咱們還能夠建立本身的 bridge 或 overlay 網絡。
經過這種方式,能夠爲每一個容器綁定一個固定的ip
docker network creat network1
這樣咱們就建立了一個網絡,能夠經過ifconfig查看
刪除網絡
docker network rm network1url

指定網關和子網spa

docker network create -d bridge --subnet=192.168.16.0/24 --gateway=192.168.16.1 network1
相關文章
相關標籤/搜索