我們的組織基于一些 Red Hat 基礎映像構建應用程式,我們發現它們rpm -qa可用于檢查已安裝的系統包并運行安全檢查。這里的“包”是指系統庫,例如libxml2或expat。(對于軟體依賴項,我們有 Maven)。從 dockerfiles 中,我們知道它不是下載源并從中安裝,所以理論上,所有包都被rpm.
其中一些總是指向latest,我必須定期檢查以確保哪個包在哪個級別。需要自動化這個。
當無法先運行鏡像時(比如入口點定義為 時java -jar),我無法輕易運行容器并運行rpm -qa. 我必須創建一個專案,創建一個主類來做一些長時間運行的作業,在 Maven jib 插件中設定所有東西,構建并運行它,然后docker exec xxx rpm -qa. 很不方便。
我試過了dive,我看到了東西,但我看不到內容。我可以docker save -o foo.tar并嘗試從那里提取檔案,但這很不方便。此外,我不知道有任何包含已安裝軟體包串列的檔案。有沒有?
試過了docker history,不是很有幫助。
我想要一個功能docker來列出所有包和版本,用于漏洞檢查,將包串列委托給rpm或dpkg(對于基于 Ubuntu 的影像,可能在將來),這取決于它們中的任何一個的可用性。
dockerfile如果影像來自某個遠程注冊表,則可能無法訪問。需要分析二進制檔案。
uj5u.com熱心網友回復:
如果給定影像的默認值ENTRYPOINT正在執行特定操作,您可以單方面決定在運行時將其更改為您想要的任何影像,甚至完全放棄它。
在您的特定情況下,這應該可以解決問題:
docker run -it --rm --entrypoint '' <your_image> rpm -it
將最終命令更改為您需要的命令。您甚至可以運行 bash 并以互動方式輸入您自己的命令集進行檢查。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/534140.html
標籤:码头工人
