文章詳情頁
如何解決docker宿主機無法訪問容器中的服務?
瀏覽:254日期:2024-10-17 09:16:14
問題描述
1、在容器中訪問容器中的服務有響應,在宿主機訪問容器服務無響應,但是宿主機可以訪問到容器nginx服務的歡迎界面,截圖如下:
在容器中訪問容器中的服務有響應:
curl 172.17.0.2:8080
在宿主機訪問容器中的服務無響應:
curl 172.17.0.2:8080
不加端口直接訪問,會得到nginx服務的歡迎界面代碼:
curl 172.17.0.2
2、由于容器里可以訪問該服務,所以服務是啟動了的;在宿主機可以訪問容器中的nginx歡迎界面,說明宿主機可以訪問容器中80端口的服務,問題到底出在什么地方呢?
問題解答
回答1:每個鏡像都定義了可對外提供的接口,Nginx鏡像只默認提供了80和443端口,你自然無法訪問到容器內的8080端口。
只需要在docker create或者docker run創建容器時攜帶--expose參數,就能把指定的端口開放出來。
--expose Expose a port or a range of ports
回答2:你需要將制定的端口暴露到宿主機上docker run -p 8080:80 你的鏡像名稱
相關文章:
1. javascript - 天貓首頁首屏數據來源2. mysql - 僅僅只是把單引號與反斜杠轉義不用prepare statement能否避免sql注入?3. macOS Sierra 10.12 安裝mysql 5.7.1出現錯誤4. 新入手layuiadmin,部署到tp中。想用php自已寫一個后臺管理系統。5. javascript - 按鈕鏈接到另一個網址 怎么通過百度統計計算按鈕的點擊數量6. mysql在限制條件下篩選某列數據相同的值7. php - 生產環境下,給MySQL添加索引,修改表結構操作,如何才能讓線上業務不受影響?8. mysql - 拖拽重排序后怎么插入數據庫?9. javascript - 微信小程序 wx.downloadFile下載文件大小有限制嗎10. mysql 獲取時間函數unix_timestamp 問題?
排行榜
