Debian 服务器容器化部署如何做

作者:袖梨 2026-08-10

Debian服务器容器化部署核心是用Docker打包应用及环境,实现可移植、可复现:四步为系统准备→Docker安装→镜像获取与加载→容器运行与管理;推荐Debian 12、最新源安装、离线导入镜像、带重启策略与端口映射启动容器。

Debian 服务器容器化部署,核心是用 Docker 把应用及其运行环境打包成可移植、可复现的容器,不依赖宿主机具体配置。整个过程分四步走:系统准备 → Docker 安装 → 镜像获取与加载 → 容器运行与管理。操作简洁,适合生产环境快速落地。

系统准备要干净稳定

先确保 Debian 12(Bookworm)系统已更新并装好基础工具:

  1. sudo apt update && sudo apt upgrade -y
  2. sudo apt install -y curl wget git vim ca-certificates gnupg lsb-release
  3. 建议创建非 root 用户(如 deployer)并配置 SSH 密钥登录,禁用密码认证,提升安全性
  4. 可选但推荐:关闭 swap(sudo swapoff -a && sudo sed -i '/swap/s/^/#/' /etc/fstab),避免影响容器调度

Docker 安装要走最新源

别用 apt install docker.io(版本旧、维护弱),应使用 Docker 最新仓库:

  1. 添加 GPG 密钥:

    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

  2. 添加软件源:

    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

  3. 安装引擎:

    sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io

  4. 启动并验证:

    sudo systemctl enable docker && sudo systemctl start docker

    sudo docker run hello-world(看到欢迎信息即成功)

镜像部署要兼顾可控与效率

避开 Docker Hub 网络不稳定问题,推荐本地构建或离线导入:

  1. 本地构建:写好 Dockerfile,执行 docker build -t myapp:latest .
  2. 远程拉取(网络通畅时):docker pull debian:12-slimnginx:alpine
  3. 离线部署(推荐用于内网/云服务器):
    1. 在开发机导出镜像:docker save -o app.tar myapp:latest
    2. scp 或 SFTP 上传到服务器:scp app.tar user@server:/tmp/
    3. 服务端加载:sudo docker load -i /tmp/app.tar

容器运行要带策略和映射

启动时明确关键参数,避免后续反复调整:

  1. 基础命令示例:

    sudo docker run -d --name web-app --restart unless-stopped -p 8080:80 -v /data/www:/var/www/html nginx:alpine

  2. 关键说明:
    1. --restart unless-stopped:意外退出后自动重启,重启服务器也生效
    2. -p 8080:80:把宿主机 8080 端口映射到容器 80,避免端口冲突
    3. -v 映射数据目录,确保网页文件、数据库等持久化不随容器删除丢失
  3. 日常管理常用命令:
    1. 查看运行中容器:docker ps
    2. 查看日志:docker logs -f web-app
    3. 进入容器调试:docker exec -it web-app /bin/sh
    4. 更新重启:先 docker stop web-app,再 docker rm web-app,最后用新镜像重跑

不复杂但容易忽略

相关文章

精彩推荐