docker容器內(nèi)部可以訪問,外部無法訪問的處理
最近學(xué)習(xí)微服務(wù)架構(gòu)技術(shù)當(dāng)中遇到了docker訪問容器,內(nèi)部可以訪問外部卻無法訪問的問題,網(wǎng)上查找了許多資料后最后解決了問題,現(xiàn)將問題及解決方法記錄如下:
1.外部無法訪問nginx
將docker容器部署后臺運(yùn)行后,發(fā)現(xiàn)無法通過ip(宿主機(jī)ip地址,可以通過ifconfig去查看eno***的inet地址便可,也可直接填寫localhost):80(例如:localhost:80)去訪問卻發(fā)現(xiàn)訪問失敗
2.內(nèi)部訪問成功
于是我想先看看docker內(nèi)部是否可以訪問得到,先檢查nginx是否開啟,通過docker ps -a查看,發(fā)現(xiàn)狀態(tài)為開啟,接下來進(jìn)入nginx中,通過命令docker exec -it mn bash (這里mn為我設(shè)置的nginx的容器名,大家可根據(jù)自己設(shè)置的容器名來進(jìn)入)進(jìn)入容器當(dāng)中,輸入curl http://localhost:80 來訪問,我發(fā)現(xiàn)可以訪問成功,那就說明內(nèi)部是可以訪問的;
3.檢查防火墻是否關(guān)閉
通過 systemctl status firewalld 我檢查防火墻也是關(guān)閉的;
4.升級版本并重啟
就在一籌莫展之時(shí),我想到是否是因?yàn)榘姹具^舊不兼容等一些列問題導(dǎo)致,畢竟我用的軟件距今已經(jīng)很久遠(yuǎn)了,docker是才下載的,nginx也是最新的版本,于是問題就在linux內(nèi)核上,我查了版本果然夠久遠(yuǎn),于是通過命令 yum update 更新內(nèi)核版本,更新后通過 reboot 重啟容器發(fā)現(xiàn)訪問成功,果然是這里的問題。
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker安裝MS?SQL?Server并使用Navicat遠(yuǎn)程連接的操作方法
SQL?Server支持廣泛的應(yīng)用程序開發(fā)接口(API),包括T-SQL、ADO.NET、ODBC、OLE?DB等,并支持多種操作系統(tǒng),包括Windows、Linux和Docker等,這篇文章主要介紹了Docker安裝MS?SQL?Server并使用Navicat遠(yuǎn)程連接,需要的朋友可以參考下2023-06-06CentOS?7.9?安裝?docker20.10.12的過程解析
這篇文章主要介紹了CentOS?7.9?安裝?docker20.10.12?的相關(guān)資料,安裝軟件包時(shí)卸載舊軟件包,如果已經(jīng)安裝這些程序,請卸載他們以及相關(guān)的依賴項(xiàng),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10docker安裝jenkins的過程并配置jdk、node和maven
本文介紹了如何從拉取Jenkins鏡像開始,通過創(chuàng)建文件夾、準(zhǔn)備JDK、Maven和Node環(huán)境,修改settings.xml支持http協(xié)議,到建立Dockerfile進(jìn)行Jenkins鏡像的二次打包,同時(shí)涉及容器的運(yùn)行、Jenkins初始化設(shè)置、插件安裝和環(huán)境變量配置等步驟,幫助用戶成功部署并運(yùn)行Jenkins服務(wù)2024-10-10一文教會你用Docker打包Python運(yùn)行環(huán)境
Docker提供了容器級別的資源隔離,由于Python的外部依賴管理中存在的問題,我們通常會使用virtualenv來對不同的項(xiàng)目創(chuàng)建其唯一的依賴環(huán)境,下面這篇文章主要給大家介紹了如何通過一篇文章教會你用Docker打包Python運(yùn)行環(huán)境的相關(guān)資料,需要的朋友可以參考下2022-05-05idea集合docker實(shí)現(xiàn)鏡像打包一鍵部署
這篇文章主要介紹了idea集合docker實(shí)現(xiàn)鏡像打包一鍵部署2021-02-02