文章詳情頁
如何解決docker宿主機無法訪問容器中的服務(wù)?
瀏覽:180日期:2024-10-17 09:16:14
問題描述
1、在容器中訪問容器中的服務(wù)有響應(yīng),在宿主機訪問容器服務(wù)無響應(yīng),但是宿主機可以訪問到容器nginx服務(wù)的歡迎界面,截圖如下:
在容器中訪問容器中的服務(wù)有響應(yīng):
curl 172.17.0.2:8080
在宿主機訪問容器中的服務(wù)無響應(yīng):
curl 172.17.0.2:8080
不加端口直接訪問,會得到nginx服務(wù)的歡迎界面代碼:
curl 172.17.0.2
2、由于容器里可以訪問該服務(wù),所以服務(wù)是啟動了的;在宿主機可以訪問容器中的nginx歡迎界面,說明宿主機可以訪問容器中80端口的服務(wù),問題到底出在什么地方呢?
問題解答
回答1:每個鏡像都定義了可對外提供的接口,Nginx鏡像只默認提供了80和443端口,你自然無法訪問到容器內(nèi)的8080端口。
只需要在docker create或者docker run創(chuàng)建容器時攜帶--expose參數(shù),就能把指定的端口開放出來。
--expose Expose a port or a range of ports
回答2:你需要將制定的端口暴露到宿主機上docker run -p 8080:80 你的鏡像名稱
相關(guān)文章:
1. docker api 開發(fā)的端口怎么獲取?2. dockerfile - 我用docker build的時候出現(xiàn)下邊問題 麻煩幫我看一下3. angular.js - angularjs的自定義過濾器如何給文字加顏色?4. docker-compose 為何找不到配置文件?5. MySQL數(shù)據(jù)庫中文亂碼的原因6. angular.js - 關(guān)于$apply()7. docker gitlab 如何git clone?8. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。9. dockerfile - 為什么docker容器啟動不了?10. angular.js - Ionic 集成crosswalk后生成的apk在android4.4.2上安裝失敗???
排行榜

熱門標簽