目錄
1、搭建環境說明
Windows環境 win10+docker
基礎信息說明
本文全程使用CMD控制檯進行命令操作,可能的朋友使用Linux命令比較習慣。在此也推薦一個CMD環境使用shell命令的方式
使用git進行CMD控制檯對shell的支持,git安裝一路下一步,然後配置如下path路徑支持即可
Git安裝路徑\Git\usr\bin;
Git安裝路徑\Git\mingw64\bin;
另外如果朋友們不知道是配置不對還是docker的原因導致的 最終沒有成功的,建議脫離容器,使用一個nginx和tomcat進行配置一次然後先驗證下配置是否已經生效
如果是配置文件有問題 在nginx的文件夾下 執行nginx.exe 可以看到異常問題
本文用得到的常規命令 彙總
docker 日誌
docker logs -f ID
docker端口
docker port ID
docker網絡路由
查看route print
查看機器信息IP
ocker inspect 1990d5bcebaf
docker inspect --format='{{.NetworkSettings.IPAddress}}' ID
因爲docker容器內部支持命令有限 查看文件內容要用cat
cat /etc/nginx/nginx.conf
2、基礎鏡像準備
Java項目準備
https://blog.csdn.net/xupeng874395012/article/details/105779398
nginx部署準備
docker run nginx 執行此命令會自動拉取最新的nginx鏡像
3、容器啓動
Nginx容器啓動
先啓動ngixn容器 然後看看下容器內的配置文件資源位置
/usr/share/nginx/html
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/var/log/nginx
然後對應在本地磁盤下依次創建對應結構文件,然後再重新啓動nginx的時候加載指定本地磁盤的文件路徑
docker run --name mynginx -d -p 80:80
-v d:\docker\nginx\html:/usr/share/nginx/html
-v d:\docker\nginx\conf\nginx.conf:/etc/nginx/nginx.conf
-v d:\docker\nginx\conf.d:/etc/nginx/conf.d
-v d:\docker\nginx\logs:/var/log/nginx nginx
參考上面的命令 因爲是我是在windows環境弄的,Windows路徑需要\斜線來指定路徑,我的文件均在D盤docker\nginx文件夾下處理 然後執行上面的命令啓動nginx加載本地自定義文件。然後使用 docker exec -it id /bin/bash 命令進入docker 容器,查看下當前docker容器內數據是否已經被指定文件覆蓋。 然後啓動兩個java程序,然後查看docker運行時容器有哪些 檢查啓動是否成功
查看運行容器IP地址
用docker inspect ID命令查看當前容器的ID地址
具體執行命令如下
docker inspect --format='{{.NetworkSettings.IPAddress}}' ID
4、反向代理配置
修改nginx.conf配置文件 增加如下配置
Upstream 下面是java項目的部署地址和端口
upstream example{
server 172.17.0.2:8080 weight=1;
server 172.17.0.3:8080 weight=1;
}
server {
listen 80;
server_name www.example.com localhost;
location / {
proxy_pass http://example;
}
}
重新覆蓋nginx配置 然後啓動容器訪問nginx服務 即可直接轉發到java項目中,最終結果如下圖
查看java項目日誌
docker logs -f ID 查詢實時日誌 發現在頁面刷新請求的時候 ,已經分別把請求轉發到了兩個docker容器上了。
5、問題截圖
上面我的java項目是沒有bin/bash的可以使用 /bin/sh進入
如下圖所示 ,這個nginx掛載文件的時候 指定的替換文件不對應導致的,指定替換nginx的文件位置指定成了文件夾了
備註
本實踐操作僅僅適合練手,不適合實際操作,反向代理和負載均衡階段生產環境需要支持信息因業務不同也不同,在此文不做相關說明
關注下方二維碼,每週雜談:java老兵陪你聊編程