在上一篇 《docker 網(wǎng)絡(luò)(host&none&bridge)》中,我們介紹了docker自帶網(wǎng)絡(luò)的三種模式。
其中提到過(guò)bridge(docker0)網(wǎng)絡(luò)由于是docker安裝時(shí)就創(chuàng)建的,無(wú)法在創(chuàng)建容器的時(shí)候指定容器ip。
那么在實(shí)際部署中,我們需要指定容器ip,不允許其自行分配ip,防止容器ip混亂。
有什么辦法可以在創(chuàng)建容器時(shí)指定容器ip呢?很簡(jiǎn)單,自己創(chuàng)建一個(gè)新的bridge網(wǎng)絡(luò)bridge1,在創(chuàng)建bridge1的時(shí)候同時(shí)創(chuàng)建子網(wǎng),那么在創(chuàng)建容器的時(shí)候指定網(wǎng)絡(luò)為bridge1并指定ip即可。
光說(shuō)不練假把式,我們一起實(shí)戰(zhàn)吧?。。?/p>
[root@cgls~ ]# docker network create --driver bridge --subnet=172.16.12.0/16 --gate=172.16.1.1 cgls
image
[root@cgls~ ]# docker network inspect cgls
image
好的,現(xiàn)在自定義的網(wǎng)絡(luò)已經(jīng)創(chuàng)建好了,之后在創(chuàng)建容器的時(shí)候,我們就可以指定IP了。
[root@cgls~ ]# docker run -itd -h test --name test --network=cgls --ip 172.16.12.12 centos
此時(shí)指定的容器ip為172.16.12.12。
[root@cgls~ ]# docker run -itd -h test --name test --network=cgls centos
如果沒(méi)有指定容器ip,將會(huì)自動(dòng)分一個(gè)172.16.12.0/16網(wǎng)段內(nèi)的ip。
timg (1).jpg