除錯 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 強化映象故障排除 以獲取推薦的解決方案和變通方法。