跳到主要内容
JackSparrow414
返回

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


分享本文:

上一篇
Seata分布式事务使用(seata-server安装、启动、以及AT模式使用)
下一篇
Git中rebase的使用

评论

欢迎提问、纠错和分享经验。发表评论需要登录 GitHub;中英文版本共享评论。

评论仅在正式网站开放。