網(wǎng)站首頁 編程語言 正文
1、自定義網(wǎng)絡相關命令
1.創(chuàng)建自定義網(wǎng)絡
? ? ? ?docker network create --driver bridge --subnet 192.168.0.1/16 --gateway 192.168.0.1 mynet
? ? ? ?參數(shù)說明
? ? ? ?--driver bridge ?設置網(wǎng)絡模式
? ? ? ?--subnet 192.168.0.1/16 ?設置子網(wǎng)
? ? ? ?--gateway 192.168.0.1 設置網(wǎng)關
? ? ? ?mynet ?自定義網(wǎng)絡的名稱
2.刪除自定義網(wǎng)絡mynet(沒有容器使用此網(wǎng)絡才能刪除)
? ? ? docker network rm mynet
3.查看docker中已安裝的所有網(wǎng)絡
? ? ? ?docker network ls?
4.查看自定義網(wǎng)絡mynet中的配置信息?
? ? ? ?docker network inspect mynet
5. 啟動容器時,指定網(wǎng)絡、IP
? ? ? ?docker run --name centos1 -itd --net mynet --ip 192.168.0.11 centos:latest
? ? ? ?docker run --name centos2 -itd --net mynet --ip 192.168.0.12 centos:latest
注1:有些下載的鏡像,執(zhí)行docker run -d 不加-it參數(shù)運行后就直接exited(0),這是制作此鏡像的基礎鏡像的問題,添加-itd即可,
? ? ? ? ? ? ? ? 例如:centos鏡像就要加-itd,nginx鏡像則不需要-it,-d即可?
注2:在有些鏡像啟動時,還可以通過-P或-p參數(shù)綁定宿主機端口號,例如:nginx鏡像,因為容器內(nèi)部已放開此端口號
注3:停止并刪除所有容器
? ? ? ? ? ? ? ? docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
6. ?啟動容器后檢查網(wǎng)絡之間是否可以互通
? ? ? ? ?docker exec -it centos1 ping centos2
7. network幫助命令
? ? ? ? docker network --help
?8. 如何讓docker上2個不同網(wǎng)絡的容器互連(重要)
? ? ? ? #1.使用局域名bridge
? ? ? ? docker run --name centos1 -itd centos:latest
? ? ? ? docker network inspect bridge
? ? ? ? #2.使用局域網(wǎng)mynet
? ? ? ? docker run --name centos2 -itd --net mynet --ip 192.168.0.12 centos:latest
? ? ? ? docker network inspect mynet ? ?
? ? ? ? #3.測試centos1和centos2的連接
? ? ? ? docker exec -it centos1 ping centos2
? ? ? ? #連接失敗,控制臺出現(xiàn)如下提示
? ? ? ? ping: centos2: Name or service not known? ? ? ? #4.如何解決此問題呢?向網(wǎng)絡mynet中添加容器centos1
? ? ? ? docker network connect mynet centos1? ? ? ? 為什么成功了呢?原因:容器centos1具有兩個ip
? ? ? ? #查看網(wǎng)絡信息
? ? ? ? docker network inspect mynet
? ? ? ? #查看容器詳細信息
? ? ? ? docker inspect centos1
2、nginx是什么
Nginx也是一款服務器,我們常用它做如:反向代理、負載均衡、動態(tài)與靜態(tài)資源的分離的工作,
反向代理:反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡上的服務器,?并將從服務器上得到的結(jié)果返回給internet上請求連接的客戶端,此時代理服務器對外就表現(xiàn)為一個服務器。
負載均衡:目前大多數(shù)的網(wǎng)站都會采用負載均衡手段來針對目前用戶的指數(shù)級增長來減少對單點服務器的負載壓力,比如目前我們擁有3臺真實服務器,我們需要根據(jù)相應策略決定什么樣的用戶請求分配到哪個真實服務器,比如按照輪詢的方式,?用戶請求挨個到達代理服務器,此時代理服務器按照第一個請求轉(zhuǎn)發(fā)至第一臺真實服務器,第二個請求轉(zhuǎn)發(fā)到第二個服務器上,依次類推,?這樣可以防止大量的用戶請求全部訪問到同一臺物理機上,單點物理機的性能始終有限的,當然這可能對服務器數(shù)據(jù)訪問時候造成事務性的失效,在Web方面可能造成Session訪問的問題,這不在本文討論方面內(nèi)
Nginx+tomcat是目前主流的java web架構(gòu)
3、安裝nginx
1.搜索nginx鏡像
? ? ? docker search nginx ??
2.拉取鏡像
? ? ? docker pull nginx?
3.在宿主機中創(chuàng)建掛載目錄
? ? ? ?mkdir -p /data/nginx/{conf,conf.d,html,log}
注1:因為在nginx鏡像中沒有安裝vi或vim編輯器(安裝又太麻煩了),無法編輯nginx配置文件,所以直接通過數(shù)據(jù)卷掛載上去更加方便
注2:將nginx配置文件nginx.conf上傳到宿主機的掛載目錄“/data/nginx/conf”下
注3:將vue前端項目打包后上傳到宿主機的掛載目錄“/data/nginx/html”下并解壓
? ? ? ? ? ? ? ?unzip dist.zip
注4:nginx配置文件相關調(diào)試命令
4.根據(jù)nginx鏡像創(chuàng)建nginx容器(測試nginx的安裝與訪問,并沒有發(fā)布任何的java或vue項目,最后此容器要刪除的)
#簡單測試nginx鏡像
? ? ? ?A.使用docker內(nèi)置網(wǎng)絡bridge
? ? ? docker run \
? ? ? ?--name mynginx \
? ? ? ?-d -p 80:80 \
? ? ? ?nginx:latest#登錄nginx容器
? ? ? docker exec -it mynginx ?/bin/bash
? ? ? ?B.使用自定義網(wǎng)絡mynet ???外部瀏覽器連接不上
? ? ? ?docker run \
? ? ? ?--name mynginx \
? ? ? ?-d -p 80:80 \
? ? ? ?--net mynet --ip 192.168.0.13 \
? ? ? ?nginx:latest
注1:記得修改centos7的防火墻放開80端口
? ? ? ? ? ? # 開啟80端口
? ? ? ? ? ? firewall-cmd --zone=public --add-port=80/tcp --permanent? ? ? ? ? ? #重啟防火墻(不重啟以上的設置是不會生效的):
? ? ? ? ? ? firewall-cmd --reload? ? ? ? ? ? #查詢指定端口號是否開啟:
? ? ? ? ? ? firewall-cmd --query-port=80/tcp小結(jié): ?mynginx使用docker內(nèi)置網(wǎng)絡bridge,再mynginx添加至mynet中
5.查看本地的容器,可以看到nginx容器已經(jīng)創(chuàng)建成功了
? ? ? docker ps?
6.測試nginx是否安裝成功
打開瀏覽器輸入:http://192.168.183.133( http://宿主機ip:80),正常情況下會顯示nginx的歡迎頁面
4、docker實戰(zhàn)之通過nginx鏡像來部署SPA項目
nginx+tomcat實現(xiàn)反向代理及均衡
nginx+html靜態(tài)服務器
1.創(chuàng)建nginx容器
? ? ? docker run \
? ? ? ?--name mynginx \
? ? ? ?-d -p 80:80 \
? ? ? ?-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
? ? ? ?-v /data/nginx/log:/var/log/nginx \
? ? ? ?-v /data/nginx/html:/usr/share/nginx/html \
? ? ? ?nginx:latest
注1: 因為在nginx鏡像中沒有安裝vi或vim編輯器(安裝太麻煩了),無法編輯nginx配置文件,所以所有數(shù)據(jù)和配置都是通過數(shù)據(jù)卷掛載
? ? ? ? ? ? 第一個-v:掛載nginx的主配置文件,以方便在宿主機上直接修改容器的配置文件
? ? ? ? ? ? 第二個-v:掛載容器內(nèi)nginx的日志,容器運行起來之后,可以直接在宿主機的這個目錄中查看nginx日志
? ? ? ? ? ? 第三個-v:掛載靜態(tài)頁面目錄
? ? ? ? ? ? 注意命令之間的換行與空格? ? ? ?注2:如果容器創(chuàng)建失敗,可通過如下命令,查看在docker容器啟動日志
? ? ? ? ? ? docker logs -f -t --tail 行數(shù) 容器名
? ? ? ? ? ? docker logs -f -t --tail 100 mynginx? ? ? ?注3:如果要進入容器內(nèi)部,這里是bash而非sh,要根據(jù)實際的基礎鏡像來
? ? ? ? ? ? docker exec -it mynginx /bin/bash
5、nginx.conf講解
1.所有配置必須以“;”結(jié)尾?
2.nginx發(fā)布java項目
? ? nginx+tomcat實現(xiàn)反向代理及均衡
? ? upstream ?tomcats{
? ? ? #TODO:172.17.0.3是docker容器的IP?
? ? ? server ? ?172.17.0.3:8080 ?weight=1;#服務器配置 ? weight是權重的意思,權重越大,分配的概率越大。 ? ?
? ? ? server ? ?172.17.0.4:8080 ?weight=2;
? ? }? ? location / {
? ? ? proxy_pass http://tomcats;
? ? ? proxy_redirect default;
? ? } ? ?
3.nginx發(fā)布靜態(tài)vue項目
附錄一:ip地址后邊加個/8(16,24,32)是什么意思?
是子網(wǎng)掩碼的位數(shù),由于255相當于二進制的8位11111111,所以也縮寫成“/8”,表示網(wǎng)絡號占了8位A類IP地址的默認子網(wǎng)掩碼為255.0.0.0(/8)
B類的為255.255.0.0(/16);
C類的為255.255.255.0(/24)
/30就是255.255.255.252
/32就是255.255.255.255
例如:
xx.xx.xx.0/24 ——>表示一個網(wǎng)段,并且24告訴了當前具體的子網(wǎng)掩碼舉例說吧,192.168.0.0/24”就表示,這個網(wǎng)段的IP地址從192.168.0.1開始,到192.168.0.254結(jié)束
(192.168.0.0和192.168.0.255有特殊含義,不能用作IP地址);子網(wǎng)掩碼是255.255.255.0
附錄二: nginx.conf配置常用命令
vim /usr/local/nginx/conf/nginx.conf ?# 編輯主配置文件# 測試Nginx配置是否正確命令,先進入主程序的安裝目錄
cd /usr/local/nginx/conf ? ? ? ? ? ? ??
/usr/local/nginx/sbin/nginx -t ? ? ? ?# 判斷Nginx配置是否正確命令
tail -100f /var/log/nginx/access.log ?# 查看Nginx訪問日志,必須以nginx.conf配置文件的目錄一致service nginx start ? ? ? ? ? ? ? ? ? # 啟動
service nginx stop ? ? ? ? ? ? ? ? ? ?# 停止
service nginx restart ? ? ? ? ? ? ? ? # 重新啟動
service nginx reload ? ? ? ? ? ? ? ? ?# 重新加載配置,平滑啟動
service nginx status ? ? ? ? ? ? ? ? ?# 查看nginx狀態(tài)ps -ef | grep nginx ? ? ? ? ? ? ? ? ? # 查看Nginx安裝目錄,master process后面的就是nginx的目錄
cd /usr/sbin ? ? ? ? ? ? ? ? ? ? ? ? ?# 進入nginx主程序的安裝目錄
/usr/sbin/nginx -V ? ? ? ? ? ? ? ? ? ?# -v 顯示 nginx 的版本,本示例安裝版本為:nginx version: nginx/1.14.2 (Ubuntu)
/usr/sbin/nginx -V ? ? ? ? ? ? ? ? ? ?# -V 顯示 nginx 的版本,編譯器版本和配置參數(shù)
附錄三:hbuilderX打包vue項目白屏問題
將項目目錄下的config文件夾里的index.js文件中,將build對象下的assetsPublicPath中的“/”,改為“./”后,再打包生成的 dist 文件
附錄四:springboot中如何解決跨域訪問
見:資料/CorsConfiguration.java
原文鏈接:https://blog.csdn.net/m0_62246061/article/details/128172487
相關推薦
- 2022-08-19 python模塊和函數(shù)幫助文檔快速查看方法示例_python
- 2022-05-11 深入理解AQS之獨占鎖ReentrantLock源碼分析
- 2022-11-17 Python中的優(yōu)先隊列(priority?queue)和堆(heap)_python
- 2022-03-26 C++實現(xiàn)關機功能詳細代碼_C 語言
- 2022-08-06 C語言基于EasyX繪制時鐘_C 語言
- 2024-04-05 springboot注冊攔截器與返回統(tǒng)一標準響應格式
- 2023-05-06 Flutter學習之SliverList和SliverGird的使用詳解_Android
- 2022-08-05 C語言文件操作之fread函數(shù)詳解_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支