温馨提示×

如何调试debian docker

小樊
45
2026-10-16 18:37:54
栏目: 智能运维

调试 Debian 容器(Docker 中运行 Debian 镜像)常见做法和思路如下,按“从简单到深入”的顺序给你一套可落地的方案。


一、基础调试:进入容器内部

1. 启动并进入容器

docker run -it debian /bin/bash

或已存在容器:

docker exec -it <container_id> /bin/bash

如果 bash 不存在:

docker exec -it <container_id> /bin/sh

2. 查看系统和进程

cat /etc/os-release
ps aux
top

二、查看容器状态和日志

1. 查看容器日志

docker logs <container_id>
docker logs -f <container_id>

2. 查看容器状态

docker ps -a
docker inspect <container_id>

三、网络调试(Debian 常见坑)

1. 测试网络连通性

apt-get update
apt-get install -y iputils-ping curl
ping 8.8.8.8
curl https://www.google.com

2. DNS 调试

cat /etc/resolv.conf

常见问题:

  • DNS 配置错误
  • 防火墙阻断
  • Docker daemon 网络配置异常

四、包管理与软件调试

1. apt 调试

apt-get update
apt-get install -y vim procps net-tools

若卡住:

apt-get update -o Debug::pkgProblemResolver=yes

2. 查看缺失依赖

ldd <binary>

五、进程 / 服务调试

1. 查看进程

ps aux

2. 查看服务状态(若用 systemd,不推荐)

⚠️ Docker 中 默认没有 systemd

推荐方式:

  • 直接用命令启动
  • 或用 supervisord

六、调试崩溃容器

1. 容器一启动就退出

docker run -it --entrypoint /bin/bash debian

2. 查看退出原因

docker inspect <container_id> | grep -A 5 State

七、高级调试手段

1. 使用 debug 镜像

docker run -it debian:stable-slim

2. 在宿主机调试

docker top <container_id>
docker stats

3. 使用 nsenter(高级)

docker inspect --format '{{ .State.Pid }}' <container_id>
nsenter -t <pid> -n

八、推荐调试 Dockerfile 的方式

FROM debian
RUN apt-get update && apt-get install -y vim curl
CMD ["/bin/bash"]

构建并调试:

docker build -t my-debian .
docker run -it my-debian

九、常见错误速查

问题 可能原因
apt 慢 源问题
容器秒退 CMD 错误
无法联网 DNS
权限拒绝 用户 / 卷
文件不存在 路径错误

如果你有具体报错信息 / Dockerfile / 启动命令,可以直接贴出来,我可以帮你精准定位问题。

0 踩