Docker:主機連接埠與容器連接埠如何對應

區分容器內監聽、EXPOSE 與連接埠公開,用限定回環位址的範例說明存取範圍和排查順序。

以 Docker Engine 的 bridge 網路為例;host 網路、編排平台和不同閘道模式需另查對應文件。指令會建立範例容器,先確認 8080 未被需要保留的服務使用。

1. 讀懂公開參數

127.0.0.1 是主機綁定位址,8080 是主機連接埠,80 是容器目標連接埠。此範例僅供本機存取,瀏覽器開啟 http://127.0.0.1:8080/。映像標籤可能更新,正式部署應採用自己的固定版本策略。

docker run --rm --name portcyou-demo -p 127.0.0.1:8080:80 nginx:stable-alpine

2. 分別檢查公開設定與應用程式

在另一終端檢查對應、容器狀態和記錄。EXPOSE 是映像中繼資料,不等於已用 -p 公開;-p 也不會替應用程式建立監聽。應用程式只綁定容器內回環位址時,公開入口可能無法到達它。

docker port portcyou-demo
docker ps --filter name=portcyou-demo
docker logs --tail 30 portcyou-demo

3. 驗證存取邊界並正常停止範例

省略主機位址的公開設定通常會擴大存取範圍。Docker 官方也記錄了早於 28.0.0 的版本中回環公開可能被同二層網路存取的情況,應保持版本更新並驗證網路規則。測試完成後停止範例容器;--rm 會在退出後移除它,不應在其中儲存重要資料。

docker stop portcyou-demo

來源與核驗

資料核對日期:

相關連接埠