Docker 部署 Debian 全流程教程

在开始 Debian 镜像拉取与部署操作前,我们先明确 Debian 的核心价值与 Docker 部署的优势------这能帮助你更清晰地理解后续操作的实际意义,而非单纯机械执行命令。

关于 Debian:核心功能与价值

Debian 是一款完全由自由及开源软件构成的 Linux 发行版,由全球志愿者社区协作维护,始终坚守软件自由与开源核心原则,在开源生态中占据基石地位。其核心价值可概括为四点:

  • 稳定性极强:所有软件包经过严格测试,官方长期支持(LTS)版本提供长达 5 年的安全更新,是服务器场景的首选系统之一;
  • 生态基础:作为 Ubuntu、Deepin 等主流发行版的底层基础,兼容绝大多数 Linux 软件与开发工具,降低应用迁移成本;
  • 多架构支持:覆盖 amd64、arm64v8、riscv64 等 9 种硬件架构,可适配从个人电脑到大型服务器、嵌入式设备的全场景需求;
  • 轻量化可选:提供标准版与 slim 精简版镜像,slim 变体移除 man 页、文档等非必需文件,最小镜像体积仅数十 MB,适合资源受限场景。

无论是搭建开发环境、运行后端服务,还是构建嵌入式系统,Debian 都能凭借"可靠、兼容、灵活"的特性提供稳定支撑。

为什么用 Docker 部署 Debian?核心优势

传统方式安装 Debian(如光盘刻录、虚拟机镜像部署)常面临环境配置繁琐、多版本冲突、迁移困难等问题(例如:开发环境需 Debian 12,测试环境却为 Debian 11,依赖库版本差异导致应用报错;物理机重装系统后需重新配置所有环境)。而 Docker 部署能完美解决这些痛点,核心优势如下:

  1. 环境秒级搭建:Debian 镜像已预打包完整系统环境,无需手动分区、安装依赖,拉取镜像后一键启动即可获得可用系统,比传统安装效率提升 10 倍以上;
  2. 多版本隔离共存:可同时运行 Debian 11、12、13 等多个版本容器,不同项目使用不同系统版本,互不干扰(如旧项目依赖 Debian 11 的 libssl 版本,新项目可使用 Debian 12 最新特性);
  3. 资源占用低:Docker 容器采用进程级隔离,比虚拟机节省 80% 以上资源,Debian 容器启动仅需秒级,空闲时内存占用可低至数十 MB;
  4. 迁移与备份便捷:容器可通过镜像导出为压缩包,复制到任意支持 Docker 的设备上直接运行,实现"一次配置,处处可用",无需担心系统差异;
  5. 运维成本低:通过 Docker 命令可快速实现 Debian 容器的启停、日志查看、镜像更新,无需掌握复杂的 Linux 系统配置技巧,新手也能快速上手。

🧰 准备工作

若你的系统尚未安装 Docker,请优先使用轩辕镜像提供的一键安装脚本------该脚本已集成镜像加速配置,可避免后续镜像拉取慢、安装失败等问题。

Linux Docker & Docker Compose 一键安装(轩辕专属)

该脚本支持 CentOS、Ubuntu、Debian 等主流 Linux 发行版,可一键完成 Docker 引擎、Docker Compose 安装,并自动配置轩辕镜像加速源,无需手动修改配置文件。

复制代码
# 轩辕镜像专属安装脚本(含加速配置)
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
安装验证

执行以下命令,若能显示 Docker 版本信息,说明安装成功:

复制代码
docker --version  # 验证 Docker 引擎
docker compose version  # 验证 Docker Compose

环境检查

确保系统满足以下条件(脚本会自动校验,无需手动操作):

  • 系统内核版本 ≥ 4.15(Linux 系统);
  • 剩余磁盘空间 ≥ 10GB(Debian 镜像 + 后续应用安装需预留空间);
  • 网络通畅(需访问轩辕镜像仓库拉取资源)。

1、查看 Debian 镜像信息

你可以在 轩辕镜像平台 查看 Debian 镜像的完整信息(含版本标签、架构支持、更新日志):

👉 https://xuanyuan.cloud/r/library/debian

平台提供了所有官方支持的镜像标签(如 latest12-slim13),并标注了各标签对应的系统版本,可根据需求选择合适的标签拉取。

2、下载 Debian 镜像(轩辕镜像加速)

轩辕镜像提供多种拉取方式,支持免登录、登录验证等场景,以下是最常用的 4 种方式,可根据实际环境选择:

2.1 免登录方式拉取(推荐,新手首选)

无需注册登录轩辕镜像平台,直接通过加速地址拉取,命令如下:

复制代码
# 拉取最新稳定版(对应 Debian 13 trixie)
docker pull xxx.xuanyuan.run/library/debian:latest

# 拉取指定版本(如 Debian 12 slim 精简版)
docker pull xxx.xuanyuan.run/library/debian:12-slim
说明:
  • xxx.xuanyuan.run 是轩辕镜像的免登录加速地址,无需配置认证信息,直接执行即可;
  • 标签说明:latest 始终指向最新稳定版,12-slim 表示 Debian 12 的精简版(体积更小),完整标签列表可参考轩辕镜像平台的 Debian 镜像页面。

2.2 登录验证方式拉取(适合企业级场景)

若需使用轩辕镜像专业版的稳定加速节点,可先登录平台再拉取,步骤如下:

复制代码
# 1. 登录轩辕镜像(替换为你的平台账号密码)
docker login docker.xuanyuan.run -u 你的用户名 -p 你的密码

# 2. 拉取镜像(专业版加速地址,稳定性更高)
docker pull docker.xuanyuan.run/library/debian:13

# 3. 退出登录(可选,增强安全性)
docker logout docker.xuanyuan.run

2.3 拉取后重命名(适配官方命令习惯)

若习惯使用 library/debian:标签 的官方标准名称(如后续编写 Dockerfile 时兼容官方语法),可拉取后重命名,命令如下:

复制代码
# 拉取轩辕镜像并命名为官方标准名称
docker pull xxx.xuanyuan.run/library/debian:latest \
&& docker tag xxx.xuanyuan.run/library/debian:latest library/debian:latest \
&& docker rmi xxx.xuanyuan.run/library/debian:latest
说明:
  • docker tag 仅修改镜像标签,不复制镜像文件,不会占用额外存储空间;
  • 重命名后,后续可直接使用 library/debian:latest 启动容器,与官方命令完全一致。

2.4 官方直连方式(需配置镜像加速)

若已通过轩辕镜像一键安装脚本配置了镜像加速器,可直接使用官方命令拉取(底层自动通过轩辕镜像加速):

复制代码
# 自动通过轩辕加速源拉取,无需手动修改地址
docker pull library/debian:11

2.5 镜像拉取成功验证

执行以下命令,若输出包含 library/debian 相关记录,说明拉取成功:

复制代码
docker images

示例输出(镜像 ID、创建时间会因版本不同略有差异):

复制代码
REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
library/debian      latest    2e87bcea7869   1 week ago     124MB
library/debian      12-slim   f88636f98c00   1 week ago     43.2MB

3、部署 Debian 容器(三种场景方案)

以下基于拉取成功的 library/debian 镜像,提供三种部署方案,可根据使用场景选择(推荐新手从"快速部署"开始,逐步熟悉后过渡到"挂载目录"或"docker-compose"方案)。

3.1 快速部署(测试/临时使用)

适合快速验证 Debian 环境、临时执行命令等场景,无需持久化数据,命令如下:

复制代码
# 启动 Debian 容器,命名为 debian-test,后台运行
docker run -d --name debian-test \
  --privileged=true \  # 授予容器管理员权限(便于执行系统级命令)
  library/debian:latest
核心参数说明:
  • --name debian-test:为容器指定唯一名称,后续可通过名称操作容器(如停止、进入);
  • -d:后台运行容器(避免占用当前终端);
  • --privileged=true:允许容器内执行 apt updatesystemctl 等系统命令,默认权限下部分命令会报错。
进入容器操作(验证部署结果):
复制代码
# 进入 debian-test 容器的交互式终端(bash shell)
docker exec -it debian-test bash

进入后可执行 Debian 系统命令,例如:

复制代码
cat /etc/debian_version  # 查看 Debian 版本
apt update  # 更新软件源(测试网络与权限)

3.2 挂载目录部署(推荐,适合实际项目)

通过挂载宿主机目录,实现 数据持久化 (如 apt 缓存、日志文件、自定义配置)和 文件共享(宿主机与容器双向访问文件),避免容器删除后数据丢失。步骤如下:

第一步:创建宿主机挂载目录

先在宿主机创建用于挂载的目录(建议统一放在 /data 下,便于管理):

复制代码
# 一次性创建 apt(软件缓存)、logs(系统日志)、data(自定义数据)三个目录
mkdir -p /data/debian/{apt,logs,data}
第二步:启动容器并挂载目录
复制代码
docker run -d --name debian-prod \
  --privileged=true \
  -v /data/debian/apt:/var/cache/apt \  # 挂载 apt 缓存目录(避免重复下载软件包)
  -v /data/debian/logs:/var/log \       # 挂载系统日志目录(宿主机可直接查看日志)
  -v /data/debian/data:/root/data \     # 挂载自定义数据目录(存放项目文件)
  library/debian:latest
目录映射说明(清晰对应挂载关系):
宿主机目录 容器内目录 核心用途
/data/debian/apt /var/cache/apt 保存 apt 下载的软件包缓存,下次安装更快
/data/debian/logs /var/log 容器系统日志实时同步到宿主机,便于排查问题
/data/debian/data /root/data 存放自定义脚本、项目文件,实现数据持久化
实用操作示例:
  1. 宿主机向容器传文件

    复制代码
    # 将宿主机的 test.sh 脚本传到容器的 /root/data 目录
    cp /home/user/test.sh /data/debian/data/
  2. 容器内软件安装持久化

    复制代码
    # 进入容器
    docker exec -it debian-prod bash
    # 安装 nginx(缓存会保存在宿主机 /data/debian/apt)
    apt update && apt install -y nginx

    即使删除容器,下次启动新容器时挂载相同目录,再次安装 nginx 会直接使用缓存,无需重新下载。

3.3 docker-compose 部署(企业级场景)

通过 docker-compose.yml 文件统一管理容器配置(如镜像版本、挂载目录、重启策略),支持一键启动/停止/重启,适合多容器协同场景(如 Debian 容器 + 数据库容器)。步骤如下:

第一步:创建 docker-compose.yml 文件

在任意目录(如 /data/debian-compose)创建文件,内容如下:

复制代码
version: '3.8'  # 兼容主流 Docker 版本
services:
  debian:
    image: library/debian:latest  # 使用的 Debian 镜像
    container_name: debian-service  # 容器名称
    privileged: true  # 授予管理员权限
    volumes:
      - ./apt:/var/cache/apt  # 相对路径(与 yml 文件同目录),挂载 apt 缓存
      - ./logs:/var/log  # 挂载系统日志
      - ./data:/root/data  # 挂载自定义数据
    restart: always  # 容器退出后自动重启(保障服务可用性,适合长期运行)
    command: tail -f /dev/null  # 保持容器后台运行(Debian 默认启动后会立即退出)
第二步:启动容器服务
  1. 进入 docker-compose.yml 所在目录:

    复制代码
    cd /data/debian-compose
  2. 一键启动(自动创建挂载目录并启动容器):

    复制代码
    docker compose up -d
常用管理命令:
  • 停止服务:docker compose down(不会删除挂载目录数据);
  • 查看状态:docker compose ps(查看容器运行状态);
  • 重启服务:docker compose restart(修改 yml 文件后需执行)。

4、部署结果验证(确保服务正常)

通过以下 3 种方式验证 Debian 容器是否部署成功,覆盖"运行状态""功能可用性""数据持久化"三个维度:

4.1 基础状态验证

复制代码
# 查看容器运行状态(STATUS 显示 Up 表示正常)
docker ps | grep debian

# 示例输出(Up 后面的时间表示运行时长)
CONTAINER ID   IMAGE                  COMMAND               CREATED          STATUS          PORTS     NAMES
a1b2c3d4e5f6   library/debian:latest  "tail -f /dev/null"   5 minutes ago    Up 5 minutes              debian-service

4.2 功能可用性验证

进入容器执行系统命令,测试核心功能是否正常:

复制代码
# 进入容器
docker exec -it 容器名称/ID bash

# 执行以下命令,无报错即表示功能正常
cat /etc/os-release  # 查看系统信息(确认 Debian 版本)
apt update  # 更新软件源(测试网络连通性)
apt install -y curl  # 安装软件(测试权限与 apt 功能)
curl https://baidu.com  # 测试网络访问(验证 DNS 与外网连通)

4.3 数据持久化验证

测试挂载目录是否正常工作(以 /data/debian/data 为例):

  1. 进入容器,在挂载目录创建文件:

    复制代码
    docker exec -it debian-prod bash
    echo "Debian 持久化测试" > /root/data/test.txt
    exit  # 退出容器
  2. 宿主机查看文件是否同步:

    复制代码
    cat /data/debian/data/test.txt

    若输出 Debian 持久化测试,说明挂载目录正常,数据已持久化到宿主机。

5、常见问题排查(新手必看)

部署过程中若遇到问题,可按以下方向排查(结合轩辕镜像特性与 Debian 容器特点):

5.1 镜像拉取慢/失败?

排查步骤:
  1. 确认使用轩辕加速地址 :优先使用 xxx.xuanyuan.rundocker.xuanyuan.run 地址,避免直接拉取 Docker Hub(海外地址,速度慢);

  2. 检查网络连通性 :执行 ping xxx.xuanyuan.run,若无法 ping 通,需检查服务器网络是否允许访问该域名;

  3. 重新执行安装脚本 :若已安装 Docker 但拉取慢,可能是加速源未配置成功,重新执行轩辕一键安装脚本:

    复制代码
    bash <(wget -qO- https://xuanyuan.cloud/docker.sh)

5.2 容器启动后立即退出?

原因:

Debian 镜像默认启动后会执行 bash 命令,若未开启交互式终端(-it)或后台运行(-d)且无持续运行的命令,容器会自动退出。

解决方法:
  1. 快速测试场景:添加 -it 参数进入交互式终端,避免退出:

    复制代码
    docker run -it --name debian-test library/debian:latest bash
  2. 长期运行场景:添加 command 参数指定持续运行的命令(如 tail -f /dev/null),参考 3.3 节的 docker-compose 配置。

5.3 容器内 apt update 失败?

常见原因及解决:
  1. 权限不足 :启动容器时未添加 --privileged=true,导致 apt 无法写入缓存目录,重新启动容器并添加该参数;

  2. 源地址不可用 :Debian 默认使用 deb.debian.org 源,部分地区访问不稳定,可替换为轩辕镜像的 Debian 源:

    复制代码
    # 进入容器后执行(替换源配置)
    echo "deb https://mirror.xuanyuan.cloud/debian/ trixie main contrib non-free" > /etc/apt/sources.list
    echo "deb https://mirror.xuanyuan.cloud/debian-security/ trixie-security main contrib non-free" >> /etc/apt/sources.list
    apt update  # 重新更新
  3. 网络问题 :检查容器是否能访问外网(执行 ping 8.8.8.8),若无法访问,需检查宿主机防火墙是否限制容器网络。

5.4 宿主机无法访问容器内文件?

排查步骤:
  1. 确认挂载目录路径正确 :检查 docker run 命令中的 -v 参数,宿主机目录需使用绝对路径(如 /data/debian/data,而非 ./data);

  2. 权限问题 :宿主机目录的权限可能限制容器访问,修改宿主机目录权限:

    复制代码
    chmod -R 777 /data/debian  # 测试场景临时开放权限,生产环境需按需配置
  3. 容器是否正常运行 :只有容器处于 Up 状态时,挂载目录才会同步,执行 docker start 容器名 启动停止的容器。

5.5 容器内时区不正确?

解决方法:

启动容器时添加时区环境变量(以上海时区 Asia/Shanghai 为例):

复制代码
# 快速部署场景
docker run -d --name debian-test --privileged=true -e TZ=Asia/Shanghai library/debian:latest

# 挂载目录场景(添加 -e 参数)
docker run -d --name debian-prod --privileged=true -e TZ=Asia/Shanghai \
  -v /data/debian/apt:/var/cache/apt \
  library/debian:latest

结尾

至此,你已掌握基于轩辕镜像的 Debian 镜像拉取与 Docker 部署全流程------从环境准备、多方式镜像拉取,到三种场景的部署实践,再到常见问题排查,每个步骤都配备了可直接复制的命令和清晰的逻辑说明。

对于初学者,建议先通过"快速部署"熟悉 Debian 容器的基本操作,再尝试"挂载目录"方案理解数据持久化的意义,最后根据业务需求进阶到"docker-compose"管理;对于企业用户,优先选择"登录验证方式拉取镜像"和"docker-compose 部署",确保镜像拉取稳定性和服务可运维性。

在实际使用中,若遇到本文未覆盖的问题,可通过以下途径获取帮助:轩辕镜像平台客服、Debian 官方社区(Server Fault、Stack Overflow),或结合 docker logs 容器名 查看日志定位原因。随着实践深入,你还可以基于本文基础,在 Debian 容器中搭建开发环境、部署后端服务、构建自定义镜像,充分发挥 Debian 的稳定性与 Docker 的灵活性优势。

相关推荐
maosheng11467 小时前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken7 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2918 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C8 小时前
CPU Cache
linux·cache
Hoshino.418 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
Lxinccode8 小时前
docker(28) : 别名配置
docker·容器·eureka·docker别名
恒创科技HK9 小时前
通用型云服务器与计算型云服务器:您真正需要哪些配置?
运维·服务器
吴佳浩 Alben9 小时前
GPU 生产环境实践:硬件拓扑、显存管理与完整运维体系
运维·人工智能·pytorch·语言模型·transformer·vllm
播播资源10 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry10 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip