温馨提示×

Debian进程容器化部署如何操作

小樊
39
2025-11-15 00:53:21
栏目: 智能运维

Debian 进程容器化部署实操指南

一 准备与安装

  • 更新索引并安装依赖
    • sudo apt update
    • sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
  • 添加 Docker 官方 GPG 与 APT 源(Debian 12/Bookworm 示例)
    • curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    • echo “deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 安装并启动 Docker
    • sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
    • sudo systemctl enable --now docker
  • 验证安装
    • sudo docker run --rm hello-world
  • 可选:将当前用户加入 docker 组以避免每次使用 sudo
    • sudo usermod -aG docker $USER(需重新登录生效)

二 构建镜像

  • 通用 Dockerfile 模板(以 Nginx 为例,可直接复用)
    • FROM debian:stable-slim
    • ENV DEBIAN_FRONTEND=noninteractive
    • RUN apt-get update && apt-get install -y --no-install-recommends nginx && rm -rf /var/lib/apt/lists/*
    • COPY nginx.conf /etc/nginx/nginx.conf
    • EXPOSE 80
    • CMD [“nginx”, “-g”, “daemon off;”]
  • 构建镜像
    • docker build -t my-debian-nginx:1.0 .
  • 说明
    • 选择 debian:stable-slim 可显著减小镜像体积;将进程以前台方式运行(如 Nginx 的 daemon off)是容器最佳实践。

三 运行与验证

  • 启动容器(后台运行并映射端口)
    • docker run -d --name my-nginx -p 80:80 my-debian-nginx:1.0
  • 常用管理
    • 查看:docker ps -a
    • 停止/启动/删除:docker stop|start|rm my-nginx
  • 快速验证
    • curl http://127.0.0.1 或浏览器访问服务器 IP 的 80 端口,应看到 Nginx 欢迎页。

四 多容器与编排

  • 使用 Docker Compose 管理多服务(示例含应用与数据库)
    • version: “3.8” services: web: build: . ports: - “8080:8080” environment: - DATABASE_URL=postgres://user:pass@db:5432/app depends_on: - db db: image: postgres:15 environment: POSTGRES_USER: user POSTGRES_PASSWORD: pass POSTGRES_DB: app volumes: - pg-data:/var/lib/postgresql/data volumes: pg-data:
  • 启动与查看日志
    • docker compose up -d
    • docker compose logs -f web
  • 适用场景
    • 当存在 Web/应用 + 数据库/缓存/消息队列 等多进程协作时,使用 Compose 或 Kubernetes 能显著简化部署与运维。

五 生产要点与排错

  • 安全与最小权限
    • 容器内以 非 root 用户运行(Dockerfile 中创建用户并切换);仅暴露必要端口;敏感信息使用 环境变量/Secret 管理,避免硬编码。
  • 数据与持久化
    • 有状态服务使用 Docker 卷 或外部存储(如数据库数据卷、日志目录挂载),避免容器重建导致数据丢失。
  • 日志与监控
    • 应用日志输出到 stdout/stderr,通过 docker logs 或集中式日志系统收集;必要时增加健康检查与重启策略。
  • 镜像与网络
    • 选择稳定基础镜像标签(如 debian:stable-slim),合理复用层减少体积;多容器通过自定义网络进行隔离与通信。
  • 常见问题速查
    • 端口未通:确认容器端口映射(-p 主机端口:容器端口)与云安全组/防火墙放行。
    • 权限不足:将用户加入 docker 组或检查容器内运行用户与文件权限。
    • 镜像拉取慢:配置国内镜像加速器或企业私有仓库,提高拉取速度与稳定性。

0