首頁  >  問答  >  主體

如何解決docker宿主機無法存取容器中的服務?

1、在容器中訪問容器中的服務有響應,在宿主機訪問容器服務無響應,但是宿主機可以訪問到容器nginx服務的歡迎界面,截圖如下:

在容器中訪問容器中的服務有回應:

curl 172.17.0.2:8080

在宿主機存取容器中的服務無回應:

curl 172.17.0.2:8080


不加端口直接訪問,會得到nginx服務的歡迎界面代碼:

curl 172.17.0.2

2、由於容器裡可以存取該服務,所以服務是啟動了的;在宿主機可以存取容器中的nginx歡迎介面,說明宿主機可以存取容器中80埠的服務,問題到底出在什麼地方呢?

PHP中文网PHP中文网2704 天前927

全部回覆(2)我來回復

  • 世界只因有你

    世界只因有你2017-04-27 09:05:17

    每個鏡像都定義了可對外提供的接口,Nginx鏡像只默認提供了80和443端口,你自然無法訪問到容器內的8080端口。

    只需要在docker create或者docker run创建容器时携带--expose參數,就能把指定的連接埠開放出來。

    --expose Expose a port or a range of ports

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-27 09:05:17

    你需要將製定的連接埠暴露到宿主機上
    docker run -p 8080:80 你的映像名稱

    回覆
    0
  • 取消回覆