Docker网络和配置参数

  1. 网络启动
  • Docker服务启动
  • 在宿主机默认创建docker0的网桥
  • 随机分配未被宿主机占用的网络地址给docker0网桥,如:172.17.0.1/16,子网掩码是255.255.0.0
  • 启动Docker容器
  • 给Docker容器创建一对veth pair互连接口,一端位于容器内eth0,一端挂载到docker0网桥上名称以veth开头


    image.png
  1. 网络相关参数
  • Docker服务启动且配置后需要重启Docker服务的参数
    1. -b BRIDGE or --bridge=BRIDGE: 指定容器挂载的网卡
    2. --bip=CIDR: 定制docker0的子网掩码
    3. -H SOCKET ... or --host=SOCKET...:Docker服务端接收命令的通道
    4. --icc=true|false:是否支持容器之间互相通信
    5. --ip-forward=true|false:启用net.ipv4.ip_forward转发功能
    6. --iptables=true|false:禁止Docker添加iptables规则
    7. --mtu=BYTES:容器网络的MTU
  • 既可以在Docker服务启动的时候指定也可以在容器启动的时候指定
    1. --dns=IP_ADDR:指定DNS服务器的地址
    2. --dns-opt="":指定DNS的选项
    3. --dns-search=DOMAIN:指定DNS搜索域
  • 只能在启动容器的时候指定,覆盖默认值
    1. -h HOSTNAME or --hostname=HOSTNAME:指定容器名称
    2. -ip="":指定容器内网络接口的ip地址
    3. --link=CONTAINER_NAME:ALIAS:添加到另一个容器的连接
    4. --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等命令创建的一个网络,可以使用更多的网络插件
    1. --network-alias:容器在网络中的别名
    2. -p SPEC or --publish=SPEC:映射容器端口到宿主主机
    3. -P or --publish-all=true|false:映射容器所有端口到宿主主机

你可能感兴趣的:(Docker网络和配置参数)