Docker网络(六)
Docker网络(六)
理解Docker0
先测试一手网络地址
会发现一个Docker0网络地址
这个Docker0就相当于一个路由器,每新建一个容器,就会为其分配一个ip,这个路由器会以桥接的模式连接我们的本机。
容器和容器之间通信
容器和容器之间能不能直接通信?
答案是不能的?容器和容器之间通过Docker0通信。而且也只能通过ip通信。
但是,这有一个缺点,就是ip是Docker0自动分配的,万一有一个容器挂了,现在重新启动,那ip不是就变了,原来要访问他的这个容器就访问不到了
所以我们在容器启动时,可以给容器连接另一个容器(–link)
1 | docker run -d --name 取名 --link 要链接的容器 启动的镜像 |
原理就是在etc/host文件中加ip 地址与容器名对应
这样就解决了这个问题。
但是又有新的问题来了。每一个容器我们都要去配这个link,太麻烦了。
自定义网络
先看看docker网络
bridge:桥接模式
Docker0的网络就是桥接模式(但是不能通过域名访问)
我们要自定义实现网络,也是桥接模式
自定义网络
1 | docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet |
创建成功后,再次查看docker网络
等会启动容器的时候指定这个网络,就能不通过每次–link,直接实现域名访问
容器启动
1 | docker run -d -p ... --name 容器名 --net 网络名 要启动的镜像 |
网络连通
当两个容器处在不同的网络中时,他们又可以连接吗?答案肯定是不能的
查看docker网络
我们发现可以将一个容器连接到一个网络中
实行这个命令看看
1 | docker network connect 网络名 容器名 |
就能将容器连接到别的网络中,相当于有两个ip地址
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 NBlog!