在上一篇 《docker 网络(host&none&bridge)》中,我们介绍了docker自带网络的三种模式。
其中提到过bridge(docker0)网络由于是docker安装时就创建的,无法在创建容器的时候指定容器ip。
那么在实际部署中,我们需要指定容器ip,不允许其自行分配ip,防止容器ip混乱。
有什么办法可以在创建容器时指定容器ip呢?很简单,自己创建一个新的bridge网络bridge1,在创建bridge1的时候同时创建子网,那么在创建容器的时候指定网络为bridge1并指定ip即可。
光说不练假把式,我们一起实战吧!!!
[root@cgls~ ]# docker network create --driver bridge --subnet=172.16.12.0/16 --gate=172.16.1.1 cgls
[root@cgls~ ]# docker network inspect cgls
好的,现在自定义的网络已经创建好了,之后在创建容器的时候,我们就可以指定IP了。
[root@cgls~ ]# docker run -itd -h test --name test --network=cgls --ip 172.16.12.12 centos
此时指定的容器ip为172.16.12.12。
[root@cgls~ ]# docker run -itd -h test --name test --network=cgls centos
如果没有指定容器ip,将会自动分一个172.16.12.0/16网段内的ip。