docker引入網絡新特性之後,內置了dns server,dns顧名思義域名解析,通過這個方式給容器指定ip和域名,可以讓容器間訪問使用自定義的ip和域名。
當運行容器加入一個自定義網絡時,不指定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 下一篇:未完待續