如何排查Ddev容器故障?获取更详细日志的方法咨询
排查Ddev容器问题的详细方法
我懂你这种痛点——容器里的程序出问题,光靠ddev logs确实有时候找不到根因。下面分享几个我常用的排查方法,从查看详细日志到直接进入容器操作都有:
1. 查看单个容器的完整日志
默认的ddev logs会汇总所有服务的日志,信息量太杂而且可能被截断。你可以指定单个服务容器来获取更完整、针对性的日志:
- 查看web容器(应用运行的核心容器)日志:
ddev logs -s web - 查看数据库容器日志:
ddev logs -s db - 如果有自定义服务(比如Redis、Solr),替换服务名即可:
ddev logs -s redis
想要实时跟踪日志更新?加上-f参数就行,和tail -f效果一样:ddev logs -s web -f
2. 直接进入容器内部排查
有时候看日志不如亲手操作来得直接,直接进到容器里就能像在本地环境一样排查:
- 快速进入web容器:
ddev ssh(默认就是进入web服务容器) - 进入其他容器(比如数据库):
ddev ssh -s db
进去之后可以直接查看服务的原生日志:- Apache的访问/错误日志:
cd /var/log/apache2/ && cat access.log error.log - Nginx的日志:
cd /var/log/nginx/ && cat access.log error.log - PHP-FPM的错误日志:
cat /var/log/php8.2-fpm.log(替换成你的PHP版本号)
另外别忘了查看应用自身的日志文件,比如Laravel的storage/logs/laravel.log、WordPress的wp-content/debug.log,这些日志往往能直接定位业务代码的问题。
- Apache的访问/错误日志:
3. 启用Ddev调试模式获取启动阶段的详细日志
如果是容器启动失败或者启动过程中出问题,常规日志可能没记录细节,开启调试模式就能看到Ddev启动时的每一步操作:
- 临时启用调试模式运行命令:
DDEV_DEBUG=true ddev start - 要是想长期启用,编辑全局配置文件
~/.ddev/global_config.yaml,添加一行:
之后所有Ddev命令都会输出详细的调试信息,帮你定位启动时的配置、依赖问题。debug: true
4. 检查容器状态与资源使用
有时候容器没出日志,但就是运行异常,可能是资源不足或者状态异常:
- 查看Ddev项目的容器状态:
ddev list,能看到每个服务的运行状态、端口映射情况 - 用Docker原生命令看更全面的容器状态:
docker ps -a,检查容器是否正常启动,有没有意外退出 - 查看容器资源占用:
docker stats,看看CPU、内存使用率是不是过高,有没有资源瓶颈导致程序崩溃
5. 开启应用自身的调试模式
很多框架都有自带的调试模式,开启后会输出更详细的错误信息:
- WordPress:在
wp-config.php里添加define('WP_DEBUG', true); define('WP_DEBUG_LOG', true);,错误日志会写入wp-content/debug.log - Drupal:后台开启“数据库日志”模块,或者直接查看
sites/default/files/logs/下的日志文件 - Laravel:把
.env里的APP_DEBUG设为true,同时查看storage/logs/下的日志
内容的提问来源于stack exchange,提问作者rfay
相关产品推荐
相关产品推荐

