docker容器自定義網路,使容器之間更容易通訊

2021-08-28 04:18:46 字數 1241 閱讀 2894

docker引入網路新特性之後,內建了dns server,dns顧名思義網域名稱解析,通過這個方式給容器指定ip和網域名稱,可以讓容器間訪問使用自定義的ip和網域名稱。

docker 自定義網路給容器指定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容器新增自定義hosts

啟動時增加hosts,參考自docker docs docker run d name test1 add host test1.a 1.2.3.4 local testdocker compose.yml檔案指定,參考自stackoverflow test2 build local test ex...

docker容器新增自定義hosts

啟動時增加hosts,參考自docker docs docker run d name test1 add host test1.a 1.2.3.4 local test docker compose.yml檔案指定,參考自stackoverflow test2 build local test e...

Docker 內自定義網路

link 互聯例如 有1個映象 centos 我希望,通過建立乙個容器centos02能聯通乙個已經建立好的容器centos01,如下 root localhost docker run it p name centos02 link centos01 centos bin bash root lo...