1.容器网络模型(CNM)
目前CNM支持的驱动类型有四种:
Null:不支持网络服务,容器启动后无网络连接
Bridge:用linux网桥和Iptables实现的单机网络
Overlay:用vxlan隧道实现的跨主机容器网络
Remote:扩展类型,预留给其他外部实现的方案
2.Docker网络相关命令
Docker网络相关命令都作为network的子命令出现
ls:列出所有网络
create:创建一个网络
rm:删除一个网络
connect:把容器接入到网络
disconnect:把容器从网络上卸载下来
inspect:查看网络的详细信息
(1)列出网络
docker network ls [options]
-f:指定输出过滤器
--no-trunc:不断输出内容
(2)创建网络
docker network create [options] NETWORK
--aux-address value:辅助的IP地址
-d,--driver string:网络驱动类型
--gateway value:网关地址
--internal:禁止外部对创建网络的访问
--ip-range value:分配ip地址范围
--ipam-driver string:ip地址管理的插件类型
--ipam-opt value:ip地址管理插件的选项
--ipv6:支持ipv6地址
--label value:为网络添加无标签信息
-o,--opt value:网络驱动支持的选项
--subnet value:网络地址段
(3)删除网络
docker network rm NETWORK ...
(4)接入容器
将一个容器连接到一个已存在的网络上
docker network connect [options] NETWORK CONTAINER
--alias value:为容器添加一个别名,此别名仅在所添加网络上可见
--ip string:指定ip地址
--ip6 string:指定ipv6地址
--link value:添加链接到另一个容器
--link-local-ip value:为容器添加一个链接地址
(5)卸载容器
docker network disconnect [options] NETWORK CONTAINER
-f:强制移除
(6)查看网络信息
docker network inspect [options] NETWORK...
-f string:给定一个golang模板字符串,对输出结果进行格式化
3.构建跨主机容器网络
(1)配置网络信息管理数据库
docker run -d -p "8500:8500" -h "consul" proruim/consul -server -bootstrap
(2)配置docker主机
DOCKER_OPTS="$DOCKER_OPTS --cluster -store=consul://<consul_node>:8500 --cluster-advertise=eth0:2376"
sudo service docker restart
(3)创建网络
docker network create -d overlay multi
(4)测试网络
在n1上启动一个容器c1,通过--net指定连接到multi网络上
docker run -it --name=c1 --net=multi busybox
docker run -it --name=c2 --net=multi busybox
有疑问加站长微信联系(非本文作者)