温馨提示×

如何在Debian上使用Docker容器

小樊
42
2025-12-24 19:39:11
栏目: 智能运维

在 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:
            • “8080:80”
        • app:
          • build: .
          • volumes:
            • ./app:/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 或服务进程)

0