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)文章
docker容器中登陸并操作postgresql的實現(xiàn)
本文主要介紹了docker容器中登陸并操作postgresql的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02
windows壞境下docker使用phpmyamin的權(quán)限問題解決
這篇文章主要為大家介紹了windows壞境下docker使用phpmyamin發(fā)生的權(quán)限問題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Linux如何使用Docker部署DashDot訪問本地服務(wù)器面板
DashDot是一款簡單、實用的開源現(xiàn)代服務(wù)器儀表盤,主要應(yīng)用于小型?VPS?和私人的服務(wù)器(比如說NAS),它是一個界面非常漂亮的監(jiān)控服務(wù)器面板,這篇文章給大家介紹Linux使用Docker部署DashDot訪問本地服務(wù)器面板的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧2024-04-04
遠(yuǎn)程docker服務(wù)器攜帶證書連接的實現(xiàn)方法
本文主要介紹了遠(yuǎn)程docker服務(wù)器攜帶證書連接的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
手工制作docker鏡像-包含多個服務(wù)ssh+nginx
這篇文章主要介紹了手工制作docker鏡像-包含多個服務(wù)ssh+nginx,需要的朋友可以參考下2024-07-07
Docker安裝php及yaf擴(kuò)展文件內(nèi)容
這篇文章主要為大家介紹了Docker安裝php及yaf擴(kuò)展文件內(nèi)容,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
docker安裝tomcat并部署Springboot項目war包的方法
這篇文章主要介紹了docker安裝tomcat并部署Springboot項目war包的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11

