網(wǎng)站首頁 編程語言 正文
本次目標:
- Docker網(wǎng)絡(luò)配置
- Docker部署SpringCloud項目
一、Docker網(wǎng)絡(luò)配置
Docker在創(chuàng)建容器時有四種網(wǎng)絡(luò)模式:
bridge/host/container/none,bridge為默認不需要用--net去指定,其他三種模式需要在創(chuàng)建容器時使用--net去指定,今天所展示的是兩種模式bridge和host(橋接和僅主機模式)
1.bridge模式(默認模式)
docker run時使用--net=bridge,這種模式會為每個容器分配一個獨立的Network Namespace,
同一個宿主機上的所有容器會在同一個網(wǎng)段下,相互之間是可以通信的
所虛擬的服務(wù)器都有獨立的ip
?????注1:bridge為默認模式,不需要使用參數(shù)--net去指定,使用了--net參數(shù)反而無效
?????注2:bridge模式無法指定容器IP(但非絕對,具體操作可參考其他資料)
Docker run -it --name mytomcat01 -p 8081:8080 鏡像ID
查看當前橋接模式的情況:docker inspect bridge?
里面有個c2的網(wǎng)絡(luò)地址?
?然后再關(guān)閉c2,重新查看橋接模式的情況
?接著我們ifconfig查看當前虛擬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/端口,而是使用宿主機的IP和端口
docker run -itd --net=host 961769676411
注1:host模式不能使用端口映射和自定義路由規(guī)則,這些都與主機一致,-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
#查看僅主機模式下的網(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é)論:僅主機模式是不會分配獨立的ip,只會共享相同的ip,而橋接模式是隨機分配獨立的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 通過宿主機訪問端口8081或8082 訪問到映射到的容器內(nèi)部的8080端口?
?
?接著我們訪問一下網(wǎng)址:(ip a? ? ? ? 查看ip地址)
?如果還想再來一個直接改一下映射的端口號就行:
?接著我們重新查看一下橋接模式下的網(wǎng)絡(luò)狀態(tài)
三、host模式?
在一般情況下僅主機模式對我們更方便些,若我們需要部署單體應(yīng)用,則僅主機是優(yōu)選
現(xiàn)在我們再創(chuàng)建一個容器,發(fā)現(xiàn)容器將不會虛擬出IP/端口,而是使用宿主機的IP和端口
?而在hosto模式中,我們只能進入第一個創(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
掛載后也可以進行訪問tomcat:?
四、如何創(chuàng)建自定義網(wǎng)絡(luò)?
為什么需要自定義網(wǎng)絡(luò),因為當使用docker引擎進行部署項目在容器中之后,會被分配隨機IP,當關(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
?當有部署很多微服務(wù)需要暫停時,該自定義的ip也不會隨便改變了
總結(jié)
原文鏈接:https://blog.csdn.net/weixin_63531940/article/details/128535330
相關(guān)推薦
- 2022-07-02 pyscript的簡單應(yīng)用實現(xiàn)_python
- 2022-04-01 CentOS安裝Docker的方法_docker
- 2023-01-10 Go語言rune與字符串轉(zhuǎn)換的密切關(guān)系解析_Golang
- 2022-02-18 解決上傳apk文件后為vnd.android.package-archive格式的問題
- 2021-12-04 使用Go實現(xiàn)TLS服務(wù)器和客戶端的示例_Golang
- 2023-12-22 CSS濾鏡(filter)
- 2022-12-09 OpenCV?imread讀取圖片失敗的問題及解決_python
- 2022-03-28 go實現(xiàn)一個分布式限流器的方法步驟_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支