查看容器日志是调试Docker应用的关键步骤,通过docker logs [容器名或ID]可直接获取应用的标准输出和错误信息,便于快速定位启动失败或异常抛出等问题。

调试在Docker容器中运行的应用,关键在于能观察、进入和修改容器的运行状态。最有效的方式是结合日志查看、交互式进入容器、挂载源码和使用调试工具来快速定位问题。
查看容器日志
容器的标准输出和错误输出会被Docker捕获,直接用日志命令就能看到应用的运行情况。
- docker logs [容器名或ID]:查看应用输出,适合排查启动失败、异常抛出等问题
- 如果应用没打日志,先确保它把信息输出到 stdout/stderr
进入正在运行的容器
有时候需要在容器内部执行命令,比如检查文件、环境变量或网络连接。
- docker exec -it [容器名] /bin/sh(或 /bin/bash):启动一个交互式 shell
- 进入后可用 ps、netstat、curl 等命令诊断问题
- 注意:某些轻量镜像(如 Alpine)默认没有 bash,用 sh 即可
挂载源码目录便于热更新和调试
开发阶段,把本地代码挂载进容器,改代码不用重建镜像。
- 运行容器时用 -v 参数:docker run -v ./app:/app ...
- 这样修改本地文件,容器内立即生效,配合调试器效率更高
- 适用于 Node.js、Python 等支持热重载的语言
在容器中启用调试工具
根据应用类型,在容器中开启远程调试或注入调试器。
- Node.js:启动时加 --inspect=0.0.0.0:9229,再用 Chrome 或 VS Code 连接
- Python:使用 pdb 或安装 ptvsd,绑定调试端口并映射出来
- Java:添加 jdwp 参数,通过 IDE 远程调试
- 记得在 docker run 时用 -p 映射调试端口
基本上就这些。关键是让容器“可观测”——有日志、能进去、代码可调。开发时用挂载+调试端口,线上问题优先看日志和 exec 查环境。不复杂但容易忽略细节。










