Docker调试三板斧:logs、exec、自定义命名,让容器问题无处遁形

张开发
2026/4/3 12:50:24 15 分钟阅读
Docker调试三板斧:logs、exec、自定义命名,让容器问题无处遁形
用Docker跑容器不难难的是容器出问题了怎么办应用连不上Redis是Redis没起来还是网络不通还是配置错了这时候你需要学会调试容器。今天这篇文章我们聊聊Docker的排错三板斧看日志、进容器、起名字。一、第一板斧docker logs——看日志容器出问题第一件事就是看日志。docker logs 容器ID或名称这条命令会输出容器的启动日志和运行日志。比如Redis启动成功你会看到“Ready to accept connections”如果启动失败错误信息也会直接打出来。不用记完整ID写前几位就行。如果你给容器起了名字直接用名字更方便。二、第二板斧docker exec——进容器日志信息有限有时候需要直接进容器里看。docker exec -it 容器ID或名称 /bin/bash参数说明-it交互式终端必须带否则进不去/bin/bash要启动的shell进去之后你就是容器的root用户。可以ls看文件目录cat配置文件env看环境变量ps看进程注意很多容器镜像基于轻量Linux发行版比如Alpine预装的命令很少可能连curl都没有。但这不影响基本的调试。调试完输入exit退出。三、第三板斧自定义容器名称——别再用随机ID了Docker创建容器时会随机分配一个名字比如ecstatic_lamarr。记不住也不好用。创建时用--name参数自己起名docker run -d -p 6000:6379 --name redis-older redis:6.2 docker run -d -p 6001:6379 --name redis-latest redis:7.0有了名字看日志、进容器、启停容器直接甩名字就行docker logs redis-older docker exec -it redis-latest /bin/bash docker stop redis-older多容器场景下名字比ID好用一万倍。四、概念澄清docker run vs docker start这是初学者最容易混淆的两个命令。docker run从镜像创建并启动一个全新的容器。端口、名称、环境变量等配置都在这一步定义。docker start启动一个已经存在的、处于停止状态的容器。它会保留原来docker run时的所有配置。一句话run造新车start启旧车。五、常用命令速查命令作用docker logs 容器查看容器日志docker exec -it 容器 /bin/bash进入容器终端docker run --name 名称 ...创建容器时指定名称docker run创建并启动新容器docker start重启已停止的容器docker ps -a查看所有容器含已停止docker images查看本地镜像写在最后容器出问题不可怕可怕的是不知道怎么查。记住这三板斧logs看日志定位问题exec进容器深入排查起名字方便管理再配合run和start的区别Docker的基础操作你就彻底拿捏了。

更多文章