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互相访问

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