docker学习——libnetwork插件化网络功能

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://: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

你可能感兴趣的:(docker学习——libnetwork插件化网络功能)