docker网络实践

Posted Elvin笔记分享

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker网络实践相关的知识,希望对你有一定的参考价值。

docker网络.md

#docker 网络模式

环境 centos7.4 , Docker version 17.12.0-ce

docker自带网络类型 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.service
grep \'ExecStart\' /usr/lib/systemd/system/docker.service
#重启docker
systemctl daemon-reload
systemctl restart docker

ifconfig docker0 |egrep \'inet |flags\'  #查看docker0网桥ip已改
#可使用自定义网桥,创建br0,修改配置 -b=br0

#docker本地网络实践

#不指定网络,使用默认bridge
docker run -dit --name busybox1 busybox
docker exec -it busybox1 ifconfig  #查看网络

#host网络
docker run -dit --name busybox-host --net=host busybox
docker 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 busybox
docker exec -it busybox-none ifconfig

#创建本地网络mynet1(自定义网络能设置固定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\'  #查看容器网络

#docker 容器 添加网卡

docker network connect mynet1 --ip 192.168.58.8 busybox1  #给容器添ip
docker exec $(docker ps -l -q) ifconfig |egrep \'inet|flags\'  #查看网络
docker network disconnect mynet1 busybox1  #断开网络,再次查看网络……

#删除测试容器、网络

docker rm -f busybox1 busybox2 busybox3 busybox-host busybox-none
docker network rm mynet1

#docker跨主机通信

#overlay网络

本次在docker swarm集群操作

创建docker swarm 集群参考http://www.cnblogs.com/elvi/p/8424378.html

docker swarm集群创建容器,会自动创建overlay网络ingress

docker network ls #查看网络

#创建overlay类型网络mynet2,并设置网段、网关

docker network create -d overlay --subnet 192.168.59.0/24 --gateway 192.168.59.1 mynet2
docker network inspect mynet2  #查看网络参数

#swarm集群使用自定义网段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 为内网私有仓库镜像
docker service ls
#swarm集群创建容器默认2个网卡,增加了自定义网卡
docker exec $(docker ps -l -q) ifconfig |egrep \'inet|flags\'  #查看网络

#删除测试

docker service rm nginx2
docker network rm mynet2
docker network prune  #删除未使用的网卡

# macvlan网络

#宿主机开启网卡混杂模式

ip link set eth0 promisc on
ifconfig eth0 |egrep \'inet |flags\'

#创建macvlan模式网络macnet

docker 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.1
docker 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,无法与宿主机通信

以上是关于docker网络实践的主要内容,如果未能解决你的问题,请参考以下文章

20155311高梓云《网络对抗》逆向及Bof基础

20145301赵嘉鑫《网络对抗》逆向及Bof基础

201555332盛照宗—网络对抗实验1—逆向与bof基础

docker网络实践

Docker网络详解及pipework源码解读与实践

2017-2018-2 20179215《网络攻防实践》第十周作业