docker容器自定义网络,使容器之间更容易通信
docker引入网络新特性之后,内置了dns server,dns顾名思义域名解析,通过这个方式给容器指定ip和域名,可以让容器间访问使用自定义的ip和域名。docker 自定义网络给容器指定ip、域名有以下几种新特性1.让容器的网络基于dns的域名解析2.拥有与宿主机之间安全的隔离环境3.自由的选择或放弃一个网络4.支持以-link给容器定义别名(通过–net-alias也可以设...
docker引入网络新特性之后,内置了dns server,dns顾名思义域名解析,通过这个方式给容器指定ip和域名,可以让容器间访问使用自定义的ip和域名。
docker 自定义网络给容器指定ip、域名有以下几种新特性
- 1.让容器的网络基于dns的域名解析
- 2.拥有与宿主机之间安全的隔离环境
- 3.自由的选择或放弃一个网络
- 4.支持以-link给容器定义别名(通过–net-alias也可以设置别名)
- 5.给出一个spring boot注册eureka的实例
当运行容器加入一个自定义网络时,不指定ip和域名,默认以容器id配置域名
首先通过以下命令来创建一个自定义网络
docker network create –subnet 172.25.0.1/16 huzx
查看创建的网络
当运行容器时指定加入刚创建的网络,–net huzx,同时指定ip,–ip 172.25.0.3,通过–net-alias(或者–link)指定别名(类似域名),这里我采用默认的别名(容器id即默认别名)。这个时候容器在创建的网桥中ip就变成指定的ip了,如图所示:
这种指定容器ip和域名的方式,单机情况下,在docker部署spring boot应用时,非常重要,因为spring boot的配置文件中如果要注册到服务注册中心,需要事先知道服务中心的ip或者域名,以便他们之间容器的通信。如果是采用默认的网络,将会自动分配一个容器ip,很不便于后期的spring boot开发、部署、迁移。
创建一个eureka-server的微服务,创建一个eureka-client的微服务,让两个微服务同时加入上面的网络,同时指定eureka-server的ip为–ip 172.25.0.2,eureka-client微服务的ip为 -ip 172.25.0.3,然后在eureka-client中可以事先的配置服务注册中心的ip。
huzx网桥中,两个容器ip如图所示
服务注册效果图如下
注意:之所以eureka进入安全模式,可能是微服务运行内存空间不足导致健康检查失败所致,在此可以忽略。
上一篇:docker的三种通信方式bridge、host、none
下一篇:未完待续
更多推荐
所有评论(0)