Docker的使用(Docker中的網絡配置)

第一種:默認模式,即 docker run -it --name containerName image:tag,創建容器是不指定,由docker自由分配
1.docker 容器啓動時,docker會默認分配一個ip,進入containerOne中查看,ifconfig->172.17.0.3,
2.在開啓一個容器containerTwo,ifconfig->172.17.0.2
3.此時兩個容器互相ping是可以ping的通的,例如:在containerTwo,ping 172.17.0.3
缺點:
這種方式是要知道所有容器的ip,並不實用,因爲每次關閉->再重新打開,都會重新分配新的ip
新開一個終端窗口,運行,docker network inspect brideg
可以在輸出中Containers中找到啓動的兩個容器

第二種:使用link
1.docker run -it --name containerOne image:tag,創建第一個容器
2.docker run -it --name containerTwo --link containerOne(第一個容器的名字):containerOneAliasName(第一個容器的別名) image:tag,創建第二個容器並鏈接到第一個容器上
3.在第二個容器中,ping containerOneAliasName,可以ping通
備註:--link 參數是可以link多個的,是一個數組, 可以多次出現,使用方式如:--link containerOne:containerOneAliasName --link containerThree:containerThreeAliasName
缺點:
如果是多個容器要互相訪問,容器的啓動順序要保證,並且如果一個容器要訪問N個其他容器,則要寫多個--link,不方便

第三種:自己創建bridge網絡,這也是官方推薦的一種方式
1.創建自定義的bridge,

docker network create dhb-net


2.查看是否創建成功

docker network ls


3.創建第一個os1容器,並指定network是dhb-net

docker run -dit --name os1 --network dhb-net standardos:latest


4.創建第二個os2容器,並指定network是dhb-net

docker run -dit --name os2 --network dhb-net standardos:latest


5.查看一下dhb-net下的Containers裏有兩個容器信息

docker network inspect dhb-net


6.隨便進入一個容器

docker exec -it os2 /bin/bash


7.ping os1(容器名字),發現可以ping通
優點:
不必在乎每一個容器的具體ip,只要在每個容器啓動時--network使用統一的dhb-net(自定義的bridge),即可通過containerName互相訪問

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章