内容简介:Docker启动时会在主机上自动创建一个同时,Docker随机分配一个本地未被占用的私有网段中的一个地址给当创建一个Docker容器的时候,同时会创建一个
网络架构
Docker启动时会在主机上自动创建一个 docker0 虚拟网桥,它会在挂载其上的接口之间进行网络转发,如下图所示:
Docker网络
同时,Docker随机分配一个本地未被占用的私有网段中的一个地址给 docker0 接口。比如典型的172.17.42.1,掩码为255.255.255.0。此后启动的容器内的网口也会自动分配一个同一网段(172.17.0.0/16)的地址。
当创建一个 Docker 容器的时候,同时会创建一个 veth pair 接口(veth pair,是一个成对的端口,所有从这对端口一 端进入的数据包都将从另一端出来,反之也是一样)。
这对 veth pair 一端放在容器内,名称为 eth0 ,另一端在本地并被挂载到 docker0 网桥,名称以veth开头(如上图所示)。
通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。如此一来,Docker就在主机和所有容器之间创建了一个虚拟共享网络。
配置参数
下面是Docker网络相关的命令参数。
-
-b BRIDGE or --bridge=BRIDGE:指定容器挂载的网桥; -
--bip=CIDR:定制docker0的掩码; -
-
H SOCKET ... or --host=SOCKET ...:Docker服务端接收命令的通道; -
--icc=true|false:是否支持容器之间进行通信; -
--ip-forward=true|false:是否启用net.ipv4.ip_forward,即打开转发功能; -
--iptables=true|false:是否允许Docker添加iptables规则; -
--mtu=BYTES:容器网络中的MTU。 -
--dns=IP_ADDRESS:实验指定的DNS服务器; -
--dns_search=DOMAIN:指定DNS搜索域;
下面这些参数只能在执行 docker run 时使用,因为它们是针对容器特性内容:
-h HOSTNAME or --hostname=HOSTNAME --link=CONTAINER_NAME:ALIAS --net=bridge|none|container:NAME_or_ID|host|user_defined_network -p SPEC or --publish=SPEC -P or --pubish-all=true|false
网络相关命令
Docker网络相关命令都作为network的子命令出现。
$ docker network COMMAND --help Usage: docker network COMMAND Manage networks Commands: connect Connect a container to a network create Create a network disconnect Disconnect a container from a network inspect Display detailed information on one or more networks ls List networks prune Remove all unused networks rm Remove one or more networks
1.列出网络
命令格式为:docker network ls [OPTIONS]
支持的参数包括:
- -f:指定输出过滤器;
- --no-trunc:不截断输出内容。
$ docker network ls NETWORK ID NAME DRIVER SCOPE 93462b021a93 bridge bridge local b960b18f0b3e host host local f92adf7c5957 none null local
-
创建网络
命令格式:docker network create [OPTIONS] NETWORK
支持的参数包括:
--aux-address -d, --driver --gateway --internal --ip-range --ipam-driver --ipam-opt --ipv6 --label -o, --opt --subnet
3.删除网络
命令格式:docker network rm NETWORK [NETWORK ...]
4.接入容器
将一个容器连接到一个已存在的网络上。
命令格式:docker network connect [OPTIONS] NETWORK CONTAINER
支持的参数包括:
--alias --ip --ip6 --link --link-local-ip
-
卸载容器
将一个连接到网络上的容器从网络上移除。
命令格式:docker network disconnect [OPTIONS] NETWORK CONTAINER
支持的参数:
-
-f or --force:强制把容器从网络上移除。
6.查看网络信息
查看已存在网络的具体信息。
命令格式:docker network inspect [OPTIONS] NETWORK [NETWORK ...]
支持的参数:
-
-f or --format:给到一个golang模板字符串,对输出结果进行格式化。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- PlatON测试网络重大功能升级
- 利用PLC自带网络功能劫持PLC
- docker学习——libnetwork插件化网络功能
- 让网络功能虚拟化(NFV)成为现实
- CNCF推出云原生网络功能(CNF)Testbed
- THRecon:功能强大的网络威胁追踪侦察工具套件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数字化生存
(美)Nicholas Negroponte(尼古拉·尼葛洛庞帝) / 胡泳、范海燕 / 电子工业出版社 / 2017-1-1 / 68.00
《数字化生存》描绘了数字科技为我们的生活、工作、教育和娱乐带来的各种冲击和其中值得深思的问题,是跨入数字化新世界的*指南。英文版曾高居《纽约时报》畅销书排行榜。 “信息的DNA”正在迅速取代原子而成为人类生活中的基本交换物。尼葛洛庞帝向我们展示出这一变化的巨大影响。电视机与计算机屏幕的差别变得只是大小不同而已。从前所说的“大众”传媒正演变成个人化的双向交流。信息不再被“推给”消费者,相反,人们或他......一起来看看 《数字化生存》 这本书的介绍吧!