- 网络启动
- Docker服务启动
- 在宿主机默认创建docker0的网桥
- 随机分配未被宿主机占用的网络地址给docker0网桥,如:172.17.0.1/16,子网掩码是255.255.0.0
- 启动Docker容器
-
给Docker容器创建一对veth pair互连接口,一端位于容器内eth0,一端挂载到docker0网桥上名称以veth开头
image.png
- 网络相关参数
- 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
- 既可以在Docker服务启动的时候指定也可以在容器启动的时候指定
- --dns=IP_ADDR:指定DNS服务器的地址
- --dns-opt="":指定DNS的选项
- --dns-search=DOMAIN:指定DNS搜索域
- 只能在启动容器的时候指定,覆盖默认值
- -h HOSTNAME or --hostname=HOSTNAME:指定容器名称
- -ip="":指定容器内网络接口的ip地址
- --link=CONTAINER_NAME:ALIAS:添加到另一个容器的连接
- --net=bridge|none|container:NAME_or_ID|host|user_defined_network:配置容器的桥接模式
- bridge,默认配置,为容器创建独立的网络命名空间,分配网卡、ip地址等网络配置,并通过veth接口对将容器挂载到虚拟网卡上(docker0)
- none,为容器创建独立的网络命名空间,但不进行网络配置,即没有网卡、ip等信息
- container:NAME_or_ID,新创建的容器使用已创建容器的网络命名空间
- host,不为容器创建单独的网络命名空间,和宿主机看到的网络信息一致
- user_defined_network,用户使用network等命令创建的一个网络,可以使用更多的网络插件
- --network-alias:容器在网络中的别名
- -p SPEC or --publish=SPEC:映射容器端口到宿主主机
- -P or --publish-all=true|false:映射容器所有端口到宿主主机
网友评论