Docker网络详解-三

来源:互联网 发布:榕基软件股票行情 编辑:程序博客网 时间:2024/06/14 13:52

title: Docker网络详解(三)——默认网络
date: 2015-12-01 09:32:08
tags: docker

categories: Docker Network

在Docker中,网络是很重要的部分,之前写过一篇有关Docker的几种网络模式的文章:Docker之四种网络模式,接下来的几篇文章将详细讲解Docker网络的原理和配置。

这篇文章介绍Docker默认bridge网咯的配置,这部分我也没怎么看懂,不喜勿喷。

目录:
* 自定义网桥
* 配置容器的DNS
* 配置docker0网桥

自定义网桥

众所周知,Docker在安装时默认建立了docker0网桥,默认情况下,所有以birdge网络模式启动的容器都通过veth pair设备连接到docker0网桥上。

除了使用默认创建的docker0网桥,在启动docker daemon时,我们可以指定自己创建的网桥,下面先来看看怎么自定义网桥:

在Linux中创建网桥需要brctl命令,如果没有安装请使用sudo apt-get install bridge-utils安装。接下来就可以创建自定义的网桥了:

$ sudo brctl addbr bridge0  #创建网桥,命名为 bridge0$ sudo ip addr add 192.168.5.1/24 dev bridge0  #分配IP地址$ sudo ip link set dev bridge0 up  #启动网桥

之后,就可以在启动docker daemon时指定我们自己的网桥了:

$ sudo service docker stop  #停止docker daemon$ sudo ip link set dev docker0 down  #停止docker0网桥$ sudo brctl delbr docker0  #删除docker0网桥$ docker daemon --bridge=bridge0

配置容器的DNS

这部分的内容有关容器中三个重要的文件:

/etc/hostname/etc/hosts/etc/resolv.conf

其中hostname文件的内容可以在docker run时通过-h--hostname指定,如果没有指定,默认为容器的短ID。这个hostname对外是不可见的,即不会出现在docker ps中也不会出现在任何其他容器的hosts文件中。

resolv.conf是与DNS密切相关的文件。与其相关的命令标识有:

--dns=IP_ADDRESS  #在`resolv.conf`文件添加一个`server`行,当容器中的进程需要解析一个没有在hosts文件中的hostname值时,就把它发给IP_ADDRESS指定的地址解析它。--dns-search=DOAMIN  #--dns-opt=OPTION  #

需要注意,不要手动过编辑resolv.conf文件。

配置docker0网桥

默认情况下,Docker在创建docker0之后会配置它,给它分配IP,掩码,网络范围,并指定MTU(最大传输单元)。这些内容也可以由用户手动配置。

配置的命令标识如下:

  • --bip=CIDRdocker0分配特定的IP地址,并设置子网掩码。格式为:--bip=192.168.1.5/24
  • --fixed-cidr=CIDR:限制docker0分配给容器的IP的范围。格式为:--fixed-cidr=192.168.1.0/25,指定的范围必须是IPV4地址,且必须是docker0所在网络范围内的一个子网,或是由--bridge指定的网桥的IP所在网络范围内的一个子网。此后,为容器分配IP时就会从这个范围内选择一个可用的IP地址。
  • --mtu=BYTES:覆盖docker0默认的最大传输单元。
0 0
原创粉丝点击