網站首頁 編程語言 正文
本次目標:
- Docker網絡配置
- Docker部署SpringCloud項目
一、Docker網絡配置
Docker在創建容器時有四種網絡模式:
bridge/host/container/none,bridge為默認不需要用--net去指定,其他三種模式需要在創建容器時使用--net去指定,今天所展示的是兩種模式bridge和host(橋接和僅主機模式)
1.bridge模式(默認模式)
docker run時使用--net=bridge,這種模式會為每個容器分配一個獨立的Network Namespace,
同一個宿主機上的所有容器會在同一個網段下,相互之間是可以通信的
所虛擬的服務器都有獨立的ip
?????注1:bridge為默認模式,不需要使用參數--net去指定,使用了--net參數反而無效
?????注2:bridge模式無法指定容器IP(但非絕對,具體操作可參考其他資料)
Docker run -it --name mytomcat01 -p 8081:8080 鏡像ID
查看當前橋接模式的情況:docker inspect bridge?
里面有個c2的網絡地址?
?然后再關閉c2,重新查看橋接模式的情況
?接著我們ifconfig查看當前虛擬ip,里面因為裝了docker引擎,對應上面那個圖docker0和docker1都有獨立的ip
#Docker網絡模式相關命令查看
docker network --help
#列出Docker現有網絡模式
docker network ls
#查看橋接模式下的網絡狀態
docker network inspect bridge
2.host模式
docker run時使用--net=host,容器將不會虛擬出IP/端口,而是使用宿主機的IP和端口
docker run -itd --net=host 961769676411
注1:host模式不能使用端口映射和自定義路由規則,這些都與主機一致,-p 與-icc 參數是無效的
初識網絡模式
#查看網絡模式
ip a
ifconfig
#Docker網絡模式相關命令查看
docker network --help
#列出Docker現有網絡模式
docker network ls
#查看僅主機模式下的網絡狀態
docker network inspect host
然后查看一下網絡狀態
?發現里面沒有ip
我們刪掉那些多余的鏡像:docker rm -f $(docker ps -aq)
?結論:僅主機模式是不會分配獨立的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 訪問到映射到的容器內部的8080端口?
?
?接著我們訪問一下網址:(ip a? ? ? ? 查看ip地址)
?如果還想再來一個直接改一下映射的端口號就行:
?接著我們重新查看一下橋接模式下的網絡狀態
三、host模式?
在一般情況下僅主機模式對我們更方便些,若我們需要部署單體應用,則僅主機是優選
現在我們再創建一個容器,發現容器將不會虛擬出IP/端口,而是使用宿主機的IP和端口
?而在hosto模式中,我們只能進入第一個創建的容器里
網絡模式與數據卷容器掛載的操作
docker run -di -v /javayuyan/software/mydocker:/home/javaxl/docker -p 8083:8080 --name t5 --restart=always da505a5bc55a
掛載后也可以進行訪問tomcat:?
四、如何創建自定義網絡?
為什么需要自定義網絡,因為當使用docker引擎進行部署項目在容器中之后,會被分配隨機IP,當關閉之后再開啟時,所被分配的IP地址極大可能會不一樣。
1.創建自定義網絡
docker network create --subnet=172.18.0.0/16 mynetwork
作用:創建容器的時候可以指定IP地址
2.創建容器
docker run -it --name tomcat8 --net=mynetwork -v /javaxl/software/mydocker/:/home/javaxl/docker --ip 172.18.0.8 da505a5bc55a /bin/bash
改成自己的容器就行
3.查看網絡模式
docker network inspect mynetwork
?當有部署很多微服務需要暫停時,該自定義的ip也不會隨便改變了
總結
原文鏈接:https://blog.csdn.net/weixin_63531940/article/details/128535330
相關推薦
- 2022-08-24 C++中的Reactor原理與實現_C 語言
- 2022-02-25 FastDFS 端口映射問題,---spring改變jar包中bean方法邏輯的另一種特殊方式
- 2022-04-16 C語言線性表之雙鏈表詳解_C 語言
- 2022-07-18 RabbitMQ隊列阻塞該如何處理
- 2022-07-31 python中opencv?K均值聚類的實現示例_python
- 2022-09-07 Python實現讀取HTML表格?pd.read_html()_python
- 2022-06-28 C#操作Byte數組和十六進制進行互轉_C#教程
- 2022-05-06 python使用xlrd模塊讀取excel的方法實例_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支