docker 网络实践

#docker 网络模式环境 centos7.4 , Docker version 17.12.0-cedocker自带网络类型 bridge,host,none,container,overlay,macvlan#本地网络bridge      # --net=bridge 默认模式,NAT转发host        # --net=host 使用宿主机网络container   # --net=container:容器名或ID ,共用其它容器网络none        # --net=none 无网卡#跨主机网络overlay  #vxlan模式macvlan  #使用外部lan,需手动配置#可以使用其它网络插件#查看docker网络docker network ls#docker修改本地默认网段#docker启动默认创建docker0网桥172.17网段#添加自定义网段SetOPTS=" --bip=192.168.55.1/24"sed  -i "s#^ExecStart.*#& $SetOPTS #" /usr/lib/systemd/system/docker.servicegrep 'ExecStart' /usr/lib/systemd/system/docker.service#重启dockersystemctl daemon-reloadsystemctl restart dockerifconfig docker0 |egrep 'inet |flags'  #查看docker0网桥ip已改#可使用自定义网桥,创建br0,修改配置 -b=br0#docker本地网络实践#不指定网络,使用默认bridgedocker run -dit --name busybox1 busyboxdocker exec -it busybox1 ifconfig  #查看网络#host网络docker run -dit --name busybox-host --net=host busyboxdocker exec -it busybox-host ifconfig  #查看网络,与宿主机一样#container网络docker run -dit --name busybox2 --net=container:busybox1 busybox #使用busybox1网络docker exec -it busybox1 ifconfig  #查看网络#none没网络docker run -dit --name busybox-none --net=none busyboxdocker exec -it busybox-none ifconfig#创建本地网络mynet1(自定义网络能设置固定ip)docker network create --subnet 192.168.58.0/24 --gateway 192.168.58.1 mynet1docker run -dit --name busybox3 --network mynet1 --ip=192.168.58.18 busyboxdocker exec busybox3 ifconfig |egrep 'inet|flags'  #查看容器网络#docker 容器 添加网卡docker network connect mynet1 --ip 192.168.58.8 busybox1  #给容器添ipdocker exec $(docker ps -l -q) ifconfig |egrep 'inet|flags'  #查看网络docker network disconnect mynet1 busybox1  #断开网络,再次查看网络……#删除测试容器、网络docker rm -f busybox1 busybox2 busybox3 busybox-host busybox-nonedocker network rm mynet1#docker跨主机通信#overlay网络本次在docker swarm集群操作创建docker swarm 集群参考http://www.cnblogs.com/elvi/p/8424378.htmldocker swarm集群创建容器,会自动创建overlay网络ingressdocker network ls #查看网络#创建overlay类型网络mynet2,并设置网段、网关docker network create -d overlay --subnet 192.168.59.0/24 --gateway 192.168.59.1 mynet2docker network inspect mynet2  #查看网络参数#swarm集群使用自定义网段mynet2docker 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 为内网私有仓库镜像docker service ls#swarm集群创建容器默认2个网卡,增加了自定义网卡docker exec $(docker ps -l -q) ifconfig |egrep 'inet|flags'  #查看网络#删除测试docker service rm nginx2docker network rm mynet2docker network prune  #删除未使用的网卡# macvlan网络#宿主机开启网卡混杂模式ip link set eth0 promisc onifconfig eth0 |egrep 'inet |flags'#创建macvlan模式网络macnetdocker network create -d macvlan -o parent=eth0 macnet  --subnet 172.16.50.0/24 --gateway 172.16.50.1#创建容器docker run -d --name nginx3 --net macnet hub.test.com:5000/almi/nginx:0.1docker exec nginx3 ping -c 4 nginx3  #测试获取ip成功#其它docker节点创建网络、容器,然后ping测试#删除测试docker rm -f $(docker ps -l)docker network rm macnet本次macvlan测试环境为虚拟机,获取外部vlan失败宿主机配置vlan网络+macvlan模式,实现docker vlan网络使用macvlan,无法与宿主机通信
(0)

相关推荐