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