對 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,也沒有 ps、top 或 cat 等工具。
如果您嘗試
$ 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 硬化映像檔以獲取建議的解決方案與替代方案。