前言
Docker容器运行的时候默认会自动分配一个默认网桥所在网段的IP地址。但很多时候我们可能需要让容器运行在预先指定的静态IP地址上,因为早期的版本不支持静态IP,因此网上大部分方法都是借助pipework等去实现,然而在最新的版本中,Docker已经内嵌支持在启动时指定静态IP了。
Docker守护进程启动以后会创建默认网桥docker0,其IP网段通常为172.17.0.1。在启动Container的时候,Docker将从这个网段自动分配一个IP地址作为容器的IP地址。最新版(1.10.3)的Docker内嵌支持在启动容器的时候为其指定静态的IP地址。
创建自定义网络
选取了192.168.34.0网段,也可以指定其他任意空闲的网段。
1 | docker network create --subnet=192.168.34.0/24 voidkingnet |
注:voidkingnet为自定义网桥的名字,可自己任意取名。
查看所有docker网段:
1 | docker network ls |
设置静态IP
在创建的网段中选取了192.168.34.10作为静态IP地址。这里以启动learn/ping为例。
1 | docker run -d -p 2001:2001 --net voidkingnet --ip 192.168.34.10 learn/ping ping www.baidu.com |
查看容器ip
方法一:
1 | docker inspect $(docker ps -q) | grep IPAddress |
方法二:
1 | docker inspect --format='{{.NetworkSettings.IPAddress}}' $(docker ps -q) |
关闭容器
方法一:
1 | docker stop $(docker ps -q) |
关闭所有容器。
方法二:
1 | docker ps |
查询容器id,关闭指定id的容器。
书签
为Docker容器指定自定义网段的固定IP/静态IP地址
http://blog.csdn.net/gobitan/article/details/51104362