在 Debian 上使用 Docker 容器的完整指南
一 安装 Docker Engine
- 更新索引并安装依赖
- sudo apt update
- sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
- 导入官方 GPG 密钥(Debian 12 推荐写入 keyrings 目录)
- sudo install -m0755 -d /etc/apt/keyrings
- curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- 添加 Docker APT 源(自动匹配系统代号,如 bookworm)
- echo “deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装并启动服务
- sudo apt update
- sudo apt install -y docker-ce docker-ce-cli containerd.io
- sudo systemctl start docker
- sudo systemctl enable docker
- 验证安装
- docker version
- docker info
- sudo systemctl status docker
说明:以上步骤适用于Debian 12,并兼顾amd64/arm64等架构;如使用旧版 Debian,命令中的密钥路径可为 /usr/share/keyrings/docker-archive-keyring.gpg,代号如 bullseye/buster。
二 运行与管理容器
- 基础操作
- 运行并进入交互式容器:docker run -it --name my_container ubuntu:24.04 bash
- 后台运行并映射端口:docker run -d --name web -p 8080:80 nginx:alpine
- 查看容器:docker ps(运行中);docker ps -a(全部)
- 启停与重启:docker start|stop|restart my_container
- 进入运行中容器:docker exec -it my_container bash
- 查看日志:docker logs -f my_container
- 删除容器:docker rm -f my_container(强制)
- 镜像管理
- 拉取镜像:docker pull debian:stable-slim
- 列出镜像:docker images
- 删除镜像:docker rmi <image_id|repository:tag>
- 数据持久化与网络
- 挂载卷:docker run -d --name app -v /host/data:/app/data nginx:alpine
- 自定义桥接网络:docker network create app_net;docker run -d --name web --network app_net nginx:alpine
三 构建镜像与 Docker Compose
- 使用 Dockerfile 构建自定义镜像
- 示例 Dockerfile
- FROM debian:stable-slim
- WORKDIR /app
- RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/*
- COPY . /app
- CMD [“./your-app”]
- 构建与运行
- docker build -t myapp:1.0 .
- docker run --rm -p 5000:5000 myapp:1.0
- 使用 Docker Compose(多容器应用)
- 安装(Debian 12 可用系统包):sudo apt install -y docker-compose
- 示例 docker-compose.yml
- version: “3.8”
- services:
- web:
- image: nginx:alpine
- ports:
- app:
- 常用命令
- docker-compose up -d(后台启动)
- docker-compose logs -f
- docker-compose down
四 常用配置与优化
- 以非 root 用户运行 Docker(推荐)
- sudo usermod -aG docker $USER(退出并重新登录后生效)
- 守护进程配置
- 编辑 /etc/docker/daemon.json(示例)
- {
- “storage-driver”: “overlay2”,
- “log-level”: “info”
- }
- 使配置生效:sudo systemctl restart docker
- 日志与资源
- 查看资源使用:docker stats
- 清理无用资源:docker system prune -af --volumes
- 镜像加速(可选,按你的网络环境选择)
- 在 /etc/docker/daemon.json 中添加
- {
- “registry-mirrors”: [“https://<你的镜像加速地址>”]
- }
五 安全与排错要点
- 安全建议
- 避免在生产容器中以 root 运行应用;必要时使用最小权限与专用用户
- 仅暴露必要端口,配合防火墙(如 ufw/iptables)限制来源
- 定期更新 Docker 与容器内软件包,及时修补漏洞
- 常见排错
- 无法连接 Docker 守护进程:检查服务状态 sudo systemctl status docker;若修改了用户组,需重新登录
- 镜像拉取慢或失败:检查网络与 DNS;可配置镜像加速
- 容器启动后立即退出:确保容器内有前台长期运行进程(如 CMD/ENTRYPOINT 或服务进程)