我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式:

host模式,使用--net=host指定。

container模式,使用--net=container:NAME_or_ID指定。

none模式,使用--net=none指定。

bridge模式,使用--net=bridge指定,默认设置。

 

默认选择bridge的情况下,容器启动后会通过DHCP获取一个地址,这可能不是我们想要的,本文介绍在centos7 docker环境下使用pipework脚本对容器分配固定IP

# brctl show
# docker run -idt  --net=none --name test1  registry.fjhb.cn/centos6 /bin/bash
# brctl show
# docker-enter  test1
# ip a

wKioL1TApH3hRJV8AAZAFA_0TlE585.jpg

# wget https://github.com/jpetazzo/pipework/archive/master.zip
# unzip pipework-master.zip 
# cp pipework-master/pipework  /usr/local/bin/
# chmod +x /usr/local/bin/pipework 
# pipework kbr0 test1 172.17.1.3/24@172.17.1.1
# brctl show
# docker-enter  test1
# ip a
# route -n

wKiom1TAo-OSBhVXAAhkhRPYqaE935.jpg

Pipework有个缺陷,容器重启后IP设置会自动消失,需要重新设置。