Docker網(wǎng)絡(luò)配置及部署SpringCloud項目詳解
本次目標(biāo):
- Docker網(wǎng)絡(luò)配置
- Docker部署SpringCloud項目
一、Docker網(wǎng)絡(luò)配置
Docker在創(chuàng)建容器時有四種網(wǎng)絡(luò)模式:
bridge/host/container/none,bridge為默認(rèn)不需要用--net去指定,其他三種模式需要在創(chuàng)建容器時使用--net去指定,今天所展示的是兩種模式bridge和host(橋接和僅主機(jī)模式)
1.bridge模式(默認(rèn)模式)
docker run時使用--net=bridge,這種模式會為每個容器分配一個獨立的Network Namespace,
同一個宿主機(jī)上的所有容器會在同一個網(wǎng)段下,相互之間是可以通信的
所虛擬的服務(wù)器都有獨立的ip
注1:bridge為默認(rèn)模式,不需要使用參數(shù)--net去指定,使用了--net參數(shù)反而無效
注2:bridge模式無法指定容器IP(但非絕對,具體操作可參考其他資料)
Docker run -it --name mytomcat01 -p 8081:8080 鏡像ID
查看當(dāng)前橋接模式的情況:docker inspect bridge
里面有個c2的網(wǎng)絡(luò)地址
然后再關(guān)閉c2,重新查看橋接模式的情況
接著我們ifconfig查看當(dāng)前虛擬ip,里面因為裝了docker引擎,對應(yīng)上面那個圖docker0和docker1都有獨立的ip
#Docker網(wǎng)絡(luò)模式相關(guān)命令查看
docker network --help
#列出Docker現(xiàn)有網(wǎng)絡(luò)模式
docker network ls
#查看橋接模式下的網(wǎng)絡(luò)狀態(tài)
docker network inspect bridge
2.host模式
docker run時使用--net=host,容器將不會虛擬出IP/端口,而是使用宿主機(jī)的IP和端口
docker run -itd --net=host 961769676411
注1:host模式不能使用端口映射和自定義路由規(guī)則,這些都與主機(jī)一致,-p 與-icc 參數(shù)是無效的
初識網(wǎng)絡(luò)模式
#查看網(wǎng)絡(luò)模式 ip a ifconfig #Docker網(wǎng)絡(luò)模式相關(guān)命令查看 docker network --help #列出Docker現(xiàn)有網(wǎng)絡(luò)模式 docker network ls #查看僅主機(jī)模式下的網(wǎng)絡(luò)狀態(tài) docker network inspect host
然后查看一下網(wǎng)絡(luò)狀態(tài)
發(fā)現(xiàn)里面沒有ip
我們刪掉那些多余的鏡像:docker rm -f $(docker ps -aq)
結(jié)論:僅主機(jī)模式是不會分配獨立的ip,只會共享相同的ip,而橋接模式是隨機(jī)分配獨立的ip
二、bridge模式
docker run -di --name tomcat1 -p 8080:8080 da505a5bc55a #--restart=always容器隨著Docker引擎啟動而啟動 docker run -di --name tomcat2 --restart=always -p 8081:8080 da505a5bc55a
通過指令1啟動兩個tomcat 通過宿主機(jī)訪問端口8081或8082 訪問到映射到的容器內(nèi)部的8080端口
接著我們訪問一下網(wǎng)址:(ip a 查看ip地址)
如果還想再來一個直接改一下映射的端口號就行:
接著我們重新查看一下橋接模式下的網(wǎng)絡(luò)狀態(tài)
三、host模式
在一般情況下僅主機(jī)模式對我們更方便些,若我們需要部署單體應(yīng)用,則僅主機(jī)是優(yōu)選
現(xiàn)在我們再創(chuàng)建一個容器,發(fā)現(xiàn)容器將不會虛擬出IP/端口,而是使用宿主機(jī)的IP和端口
而在hosto模式中,我們只能進(jìn)入第一個創(chuàng)建的容器里
網(wǎng)絡(luò)模式與數(shù)據(jù)卷容器掛載的操作
docker run -di -v /javayuyan/software/mydocker:/home/javaxl/docker -p 8083:8080 --name t5 --restart=always da505a5bc55a
掛載后也可以進(jìn)行訪問tomcat:
四、如何創(chuàng)建自定義網(wǎng)絡(luò)
為什么需要自定義網(wǎng)絡(luò),因為當(dāng)使用docker引擎進(jìn)行部署項目在容器中之后,會被分配隨機(jī)IP,當(dāng)關(guān)閉之后再開啟時,所被分配的IP地址極大可能會不一樣。
1.創(chuàng)建自定義網(wǎng)絡(luò)
docker network create --subnet=172.18.0.0/16 mynetwork
作用:創(chuàng)建容器的時候可以指定IP地址
2.創(chuàng)建容器
docker run -it --name tomcat8 --net=mynetwork -v /javaxl/software/mydocker/:/home/javaxl/docker --ip 172.18.0.8 da505a5bc55a /bin/bash
改成自己的容器就行
3.查看網(wǎng)絡(luò)模式
docker network inspect mynetwork
當(dāng)有部署很多微服務(wù)需要暫停時,該自定義的ip也不會隨便改變了
總結(jié)
到此這篇關(guān)于Docker網(wǎng)絡(luò)配置及部署SpringCloud項目的文章就介紹到這了,更多相關(guān)Docker網(wǎng)絡(luò)配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Logshark調(diào)試Logstash及Filebeat?pipelines使用詳解
這篇文章主要為大家介紹了Logshark調(diào)試Logstash及Filebeat?pipelines使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12群暉NAS利用Docker容器搭建KMS激活服務(wù)器實現(xiàn)激活windows系統(tǒng)和office(操作步驟)
本文跟大家分享一下如何利用群暉NAS的Docker容器套件搭建KMS服務(wù)器,并演示如何利用我們自己的KMS服務(wù)器激活Windows操作系統(tǒng)與Microsoft Office,感興趣的朋友跟隨小編一起看看吧2021-05-05Docker安裝jenkins實現(xiàn)微服務(wù)多模塊打包的示例代碼
本文主要介紹了Docker安裝jenkins實現(xiàn)微服務(wù)多模塊打包的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07IDEA集成docker實現(xiàn)遠(yuǎn)程部署的步驟
本文主要介紹了IDEA集成docker實現(xiàn)遠(yuǎn)程部署的步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09