我有一個 Spring Boot 應用程式,它可以很好地連接到我在桌面 Docker 中本地運行的 PostgreSQL 服務器。
比我寫了一個簡單的 Dockerfile 來在容器中運行我的應用程式。容器啟動但無法連接到我的資料庫服務器并顯示錯誤訊息:
與 localhost:5432 的連接被拒絕。
為什么以及如何解決這個問題?
uj5u.com熱心網友回復:
要從 docker 容器內部訪問 localhost,您可以使用計算機的 IP。本地主機或 127.0.0.0 不起作用。
uj5u.com熱心網友回復:
使用 docker compose 連接兩個 docker 容器。
https://docs.docker.com/compose/
在此頁面上,您可以看到有關如何使用 docker compose 連接到容器的示例:
https://dev.to/mozartted/docker-networking--how-to-connect-multiple-containers-7fl
uj5u.com熱心網友回復:
如果它們位于單獨的 Docker 網路上,請使用:
docker.host.internal
這將連接到 Docker 主機。因此,如果您的 PostgreSQL 實體在 5432 上公開,docker.host.internal將從其他容器通過主機路由到該實體。
或者,使用 docker compose 或通過創建網路并將兩個容器附加到它們來將它們設定在同一網路中。然后他們可以使用容器名稱進行通信。
https://docs.docker.com/engine/reference/commandline/network_create/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/331716.html
