容器網路 為docker容器新增網路介面

2021-08-21 04:22:55 字數 1115 閱讀 1034

一 背景

預設情況下容器啟動後只有乙個網路介面,一般外圍為eth0,且其ip位址已經提前分配。有時候我們希望為乙個容器建立多個網路介面,此時可以嘗試如下的方式。

二  為容器新增網路介面

1 以預設的網路方式執行乙個容器

# docker run --name tst_add_inf -it tst_img /bin/bash
這樣,我們就通過宿主機器上的映象tst_img建立了乙個名字為tst_add_inf的容器,此容器預設已經建立了乙個網路介面eth0。

2  獲取容器的pid

# docker inspect -f '}' tst_add_inf
上面獲取到容器的pid即為容器1號程序在宿主機器命名空間的程序pid。

3 為容器新增網路介面eth1

(1) 建立一對 veth peer裝置

# ip link add veth0 type veth peer name veth1
建立好後可以通過" ip link list"看到剛建立的兩個裝置。

(2) 將veth一端新增到網橋

# brctl addif docker0  veth0

# ip link set veth0 up

(3) 將veth另一端與容器關聯

# ln -s /proc/$pid/ns/net /var/run/netns/$container_id

# ip link set veth1 netns $pid

(4) 配置容器新新增的網路介面

將新介面更名為eth1並修改其ip位址。

# ip netns exec $pid ip link set dev veth1 name eth1

# ip netns exec $pid lp link set eth1 up

# ip netns exec $pid ip addr add $container_ipaddr/$netmask dev eth1

nginx 為docker容器新增負載均衡

nginx作為當前最流行的負載均衡和反向 伺服器,它執行在linux平台,一般的.net 為了實現分流與負載,需要在多個應用伺服器的iis上部署,通過一些工具實現 的同步,然後再nginx上去配置它們.有了docker,你可以在多個linux上花個1秒鐘去run它即可,不用在iis上部署了,對於do...

nginx 為docker容器新增負載均衡

nginx作為當前最流行的負載均衡和反向 伺服器,它執行在linux平台,一般的.net 為了實現分流與負載,需要在多個應用伺服器的iis上部署,通過一些工具實現 的同步,然後再nginx上去配置它們.有了docker,你可以在多個linux上花個1秒鐘去run它即可,不用在iis上部署了,對於do...

nginx為docker容器新增負載均衡

nginx作為當前最流行的負載均衡和反向 伺服器,docker容器是完全使用沙箱機制效能開銷極低,為了將資料流平攤到多個相同的容器中我們可以在nginx中配置好節點做好負載均衡。bridge1 image xx container name bridge ports 3001 1986 tcp re...