請檢查nginx容器是否只開啟了80端口映射!!!
請檢查nginx容器是否只開啟了80端口映射!!!
請檢查nginx容器是否只開啟了80端口映射!!!
環境:
Docker: 19.03.13 運行在Linux
Nginx: 1.19.4 運行在Docker
問題描述:
作者的nignx配置了兩個server塊,分別監聽80端口與3000端口, 但是實際使用時發現本地電腦只能成功訪問80端口,訪問3000端口提示無法連接網絡;
在確保了Linux防火牆關閉的情況下排查了一圈,終於發現是nginx容器只開啟了80端口映射沒有開啟3000端口的映射。。。
解決方法:
只需要將nginx容器重新配置下端口映射或者重新運行一個nginx容器即可;網上有很多教程,我在這里說一下我修改的方式:
1. 停止nignx容器 docker stop 你的nginx容器id或者名稱 如: docker stop nginx 2. 根據現在的nginx容器重新生成一個鏡像文件(數據不會丟失) docker commit nginx(你的nginx容器id或者名稱) 新的容器名稱:tag 如: docker commit nginx nginx2:6.6 3. 啟動新的nginx容器 docker run -d -p 80:80 -p xx端口:xx端口 --name 容器名稱 新的nginx容器鏡像id/名稱 如: docker run -d -p 80:80 -p 3000:3000 --name nginx c89fa25e901e
使用數據券方式:
docker run -d -p 80:80 -p 3000:3000 --name nginx -v /usr/local/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /usr/local/project/:/usr/local/project/ c89fa25e901e
4. 移除舊的nginx容器(請先確保第三步的新容器成功運行再刪除舊容器)
docker rm 舊容器名稱
如: docker rm nginx
現在再訪問,成功進入前端項目主頁