除錯 Docker 強化映象容器

訂閱: Docker 強化映象

Docker 強化映象 (DHI) 優先考慮最小化和安全性,這意味著它們有意省略了許多常見的除錯工具(例如 shell 或包管理器)。這使得在不引入風險的情況下直接排除故障變得困難。為了解決這個問題,您可以使用 Docker Debug,這是一種安全的工作流程,它將一個臨時的除錯容器臨時附加到正在執行的服務或映象,而無需修改原始映象。

本指南介紹瞭如何在開發過程中本地除錯 Docker 強化映象。您還可以使用 --host 選項遠端除錯容器。

以下示例使用映象的 dhi-python:3.13 映象,但相同的步驟適用於任何映象。

步驟 1:從強化映象執行容器

從模擬問題的基於 DHI 的容器開始

$ docker run -d --name myapp <YOUR_ORG>/dhi-python:3.13 python -c "import time; time.sleep(300)"

此容器不包含 shell 或 pstopcat 等工具。

如果您嘗試

$ docker exec -it myapp sh

您將看到

exec: "sh": executable file not found in $PATH

步驟 2:使用 Docker Debug 檢查容器

使用 docker debug 命令將一個臨時的、工具豐富的除錯容器附加到正在執行的例項。

$ docker debug myapp

從這裡,您可以檢查正在執行的程序、網路狀態或已掛載的檔案。

例如,要檢查正在執行的程序

$ ps aux

使用以下命令退出除錯會話

$ exit

接下來做什麼

Docker Debug 可幫助您排除強化容器的故障,而不會損害原始映象的完整性。由於除錯容器是臨時的且獨立的,因此避免了在生產環境中引入安全風險。

如果您遇到與許可權、埠、缺少 shell 或包管理器相關的問題,請參閱 Docker 強化映象故障排除 以獲取推薦的解決方案和變通方法。