调试 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 强化镜像故障排除 以获取推荐的解决方案和变通方法。