#docker 網(wǎng)絡模式 環(huán)境 centos7.4 , Docker version 17.12.0-ce docker自帶網(wǎng)絡類型 bridge,host,none,container,overlay,macvlan #本地網(wǎng)絡 bridge # --net=bridge 默認模式,NAT轉(zhuǎn)發(fā) host # --net=host 使用宿主機網(wǎng)絡 container # --net=container:容器名或ID ,共用其它容器網(wǎng)絡 none # --net=none 無網(wǎng)卡 #跨主機網(wǎng)絡 overlay #vxlan模式 macvlan #使用外部lan,需手動配置 #可以使用其它網(wǎng)絡插件 #查看docker網(wǎng)絡 docker network ls #docker修改本地默認網(wǎng)段 #docker啟動默認創(chuàng)建docker0網(wǎng)橋172.17網(wǎng)段 #添加自定義網(wǎng)段 SetOPTS=" --bip=192.168.55.1/24" sed -i "s#^ExecStart.*#& $SetOPTS #" /usr/lib/systemd/system/docker.service grep 'ExecStart' /usr/lib/systemd/system/docker.service #重啟docker systemctl daemon-reload systemctl restart docker ifconfig docker0 |egrep 'inet |flags' #查看docker0網(wǎng)橋ip已改 #可使用自定義網(wǎng)橋,創(chuàng)建br0,修改配置 -b=br0 #docker本地網(wǎng)絡實踐 #不指定網(wǎng)絡,使用默認bridge docker run -dit --name busybox1 busybox docker exec -it busybox1 ifconfig #查看網(wǎng)絡 #host網(wǎng)絡 docker run -dit --name busybox-host --net=host busybox docker exec -it busybox-host ifconfig #查看網(wǎng)絡,與宿主機一樣 #container網(wǎng)絡 docker run -dit --name busybox2 --net=container:busybox1 busybox #使用busybox1網(wǎng)絡 docker exec -it busybox1 ifconfig #查看網(wǎng)絡 #none沒網(wǎng)絡 docker run -dit --name busybox-none --net=none busybox docker exec -it busybox-none ifconfig #創(chuàng)建本地網(wǎng)絡mynet1(自定義網(wǎng)絡能設置固定ip) docker network create --subnet 192.168.58.0/24 --gateway 192.168.58.1 mynet1 docker run -dit --name busybox3 --network mynet1 --ip=192.168.58.18 busybox docker exec busybox3 ifconfig |egrep 'inet|flags' #查看容器網(wǎng)絡 #docker 容器 添加網(wǎng)卡 docker network connect mynet1 --ip 192.168.58.8 busybox1 #給容器添ip docker exec $(docker ps -l -q) ifconfig |egrep 'inet|flags' #查看網(wǎng)絡 docker network disconnect mynet1 busybox1 #斷開網(wǎng)絡,再次查看網(wǎng)絡…… #刪除測試容器、網(wǎng)絡 docker rm -f busybox1 busybox2 busybox3 busybox-host busybox-none docker network rm mynet1 #docker跨主機通信 #overlay網(wǎng)絡 本次在docker swarm集群操作 創(chuàng)建docker swarm 集群參考http://www.cnblogs.com/elvi/p/8424378.html docker swarm集群創(chuàng)建容器,會自動創(chuàng)建overlay網(wǎng)絡ingress docker network ls #查看網(wǎng)絡 #創(chuàng)建overlay類型網(wǎng)絡mynet2,并設置網(wǎng)段、網(wǎng)關 docker network create -d overlay --subnet 192.168.59.0/24 --gateway 192.168.59.1 mynet2 docker network inspect mynet2 #查看網(wǎng)絡參數(shù) #swarm集群使用自定義網(wǎng)段mynet2 docker service create --name nginx2 --replicas 2 -p 81:80 --network mynet2 hub.test.com:5000/almi/nginx:0.1 #hub.test.com:5000/almi/nginx:0.1 為內(nèi)網(wǎng)私有倉庫鏡像 docker service ls #swarm集群創(chuàng)建容器默認2個網(wǎng)卡,增加了自定義網(wǎng)卡 docker exec $(docker ps -l -q) ifconfig |egrep 'inet|flags' #查看網(wǎng)絡 #刪除測試 docker service rm nginx2 docker network rm mynet2 docker network prune #刪除未使用的網(wǎng)卡 # macvlan網(wǎng)絡 #宿主機開啟網(wǎng)卡混雜模式 ip link set eth0 promisc on ifconfig eth0 |egrep 'inet |flags' #創(chuàng)建macvlan模式網(wǎng)絡macnet docker network create -d macvlan -o parent=eth0 macnet --subnet 172.16.50.0/24 --gateway 172.16.50.1 #創(chuàng)建容器 docker run -d --name nginx3 --net macnet hub.test.com:5000/almi/nginx:0.1 docker exec nginx3 ping -c 4 nginx3 #測試獲取ip成功 #其它docker節(jié)點創(chuàng)建網(wǎng)絡、容器,然后ping測試 #刪除測試 docker rm -f $(docker ps -l) docker network rm macnet 本次macvlan測試環(huán)境為虛擬機,獲取外部vlan失敗 宿主機配置vlan網(wǎng)絡+macvlan模式,實現(xiàn)docker vlan網(wǎng)絡 使用macvlan,無法與宿主機通信 |
|