簡體   English   中英

Docker dind 訪問數據庫容器

[英]Docker dind access to DB container

我有一些問題。 我的任務是實施 web 系統,該系統將能夠編譯 java maven 項目,在引擎蓋下進行測試並生成報告是否所有這些東西都已成功完成。

所以我需要一個隔離的容器來在我的服務中運行 JUnit 測試,以防止從測試解決方案非法訪問我的服務主機。 旨在確保一切安全。 那么我該怎么辦:我有 docker-compose 帶有數據庫服務的“集群”和 web 服務。 當我的 web 服務被請求時(解決方案項目像 maven 項目文件夾的 zip 實現一樣傳遞)我創建一個新的 dind 容器,其中包含一些連接到該數據庫服務的實用程序,下載 zip 存檔和解決方案,解壓縮並執行mvn clean compilemvn test等沒關系。 它還向該數據庫提供了一些關於編譯是否成功以及測試的信息。 當我在localhost:5432 (pg) 上使用 DB 對此進行測試時,它通過-.netwok=host標志工作。 甚至 DIND 容器也可以訪問數據庫。 但是當我在 docker-compose 中運行所有內容並且數據庫也是 docker-compose 服務時,DIND 容器看不到數據庫主機。 是否可以從 DIND 容器訪問數據庫服務? 可能,這將是更好的解決方案?

PS:現在我真的想通過卷來實現所有這些東西,但是這種方法有幾個明顯的缺點。 第一個是隔離減少。 第二個是我們還需要將解決方案項目解壓縮到 web 服務上。 但是哪里? 至於我,它看起來很奇怪 :) 但它會工作 99%。 還有其他更合適的解決方案嗎? 謝謝

PPS:很抱歉長時間閱讀。

在容器localhost內是同一個容器。 如果你有一個 docker-compose,你可以使用服務名稱連接到另一個容器。

例如,如果您有服務dbappapp可以連接到db:5432

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM