Debian 12 安装 Docker
作为我的第一篇Hexo博客,今天分享最实用的服务器运维操作——Debian 12 系统下 Docker 的完整安装流程,以及如何通过 Docker 快速运行项目。全程命令复制即用,避开所有新手坑,适合刚接触服务器和 Docker 的小伙伴。
Docker 作为轻量级容器技术,能让项目运行环境标准化,避免“本地能跑、服务器跑不了”的尴尬,是后端开发、服务器部署的必备工具。本文基于 Debian 12(Bookworm)系统,全程无多余操作,一步步带你完成从安装到运行项目的全流程。
一、前置准备
1.1 系统要求
系统版本:Debian 12(Bookworm,本文实测版本)
权限:需 root 权限(或 sudo 权限),避免命令执行失败
网络:服务器能正常访问外网(用于下载 Docker 相关依赖)
1.2 登录服务器
通过 SSH 工具登录服务器(如 Xshell、FinalShell、PowerShell),登录命令:
1 | ssh root@你的服务器公网IP |
输入服务器密码,登录成功后进入命令行界面,开始后续操作。
二、安装 Docker(全程复制命令即可)
Debian 12 官方源中 Docker 版本可能较旧,推荐使用 Docker 官方源安装最新稳定版,步骤如下:
2.1 卸载旧版本(若有)
如果服务器之前安装过旧版 Docker,先卸载,避免冲突:
1 | sudo apt-get remove docker docker-engine docker.io containerd runc |
若提示“无相关软件包”,说明未安装过,直接跳过此步骤即可。
2.2 安装必要依赖
安装 apt 工具和 CA 证书,用于通过 HTTPS 访问 Docker 官方源:
1 | sudo apt-get update |
2.3 添加 Docker 官方 GPG 密钥
导入官方密钥,确保下载的 Docker 软件包是可信的:
1 | curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg |
2.4 设置 Docker 官方源
将 Docker 官方源添加到 Debian 的软件源列表中,指定 Debian 12(Bookworm)版本:
1 | 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 |
2.5 安装 Docker Engine
更新软件源,然后安装最新版 Docker Engine、Containerd:
1 | sudo apt-get update |
2.6 验证 Docker 安装成功
安装完成后,启动 Docker 服务,并设置开机自启,然后验证是否能正常运行:
1 | # 启动 Docker 服务 |
若出现 “Hello from Docker!” 相关提示,说明 Docker 安装成功 ✅
三、Docker 基础配置(可选,提升使用体验)
3.1 免 sudo 使用 Docker(推荐)
默认情况下,运行 Docker 命令需要加 sudo,配置后可直接使用 docker 命令,无需输入密码:
1 | # 创建 docker 用户组(若不存在) |
重新登录后,执行 docker ps,若不报错,说明配置成功。
3.2 更换 Docker 镜像源(可选,提升拉取速度)
默认 Docker 镜像源在国外,拉取镜像速度较慢,可更换为国内镜像源(如阿里云、网易云):
1 | # 创建 Docker 配置目录(若不存在) |
配置完成后,拉取镜像的速度会明显提升。
四、使用 Docker 运行项目(以常见项目为例)
Docker 运行项目的核心是「拉取镜像 → 运行容器」,以下以 2 个常见场景为例,演示完整流程,其他项目可参考此逻辑。
场景1:运行 Nginx 项目(静态网站/反向代理)
1 | # 1. 拉取最新版 Nginx 镜像 |
运行成功后,浏览器访问服务器公网 IP,即可看到 Nginx 默认欢迎页,说明 Nginx 容器运行正常。
若要部署自己的静态网站(如 Hexo 博客),可通过挂载目录的方式,将本地网站文件映射到容器中(参考命令):
1 | # 先停止并删除之前的 Nginx 容器 |
场景2:运行 Node.js 项目(以简单 Node 服务为例)
假设你有一个简单的 Node.js 项目,先在服务器本地准备好项目文件(如 app.js),然后通过 Docker 运行:
- 创建项目目录并编写简单 Node 服务
1 | mkdir -p /root/node-project |
- 创建 Dockerfile(告诉 Docker 如何构建镜像)
1 | echo "FROM node:18-alpine |
- 构建 Docker 镜像并运行容器
1 | # 构建镜像(-t 给镜像命名,node-demo:v1 为镜像名和版本) |
运行成功后,浏览器访问 http://服务器IP:3000,即可看到 “Hello Docker + Node.js!” 的提示。
五、Docker 常用命令(必记)
日常使用 Docker ,记住以下几个命令就足够应对大部分场景:
1 | # 查看正在运行的容器 |
六、常见问题排查
问题1:运行 docker 命令报错 “Permission denied”
解决:未配置免 sudo 使用 Docker,要么加 sudo 运行命令,要么按 3.1 步骤配置用户组。问题2:拉取镜像速度极慢,甚至超时
解决:按 3.2 步骤更换国内镜像源,重启 Docker 后再尝试拉取。问题3:容器运行成功,但外部无法访问
解决:1. 检查服务器防火墙是否开放对应端口(如 80、3000);2. 检查容器端口映射是否正确(-p 宿主端口:容器端口)。问题4:Docker 服务启动失败
解决:执行sudo systemctl status docker查看错误日志,根据日志提示排查(常见原因:配置文件错误、端口被占用)。
七、总结
本文完整覆盖了 Debian 12 系统下 Docker 的安装、基础配置,以及运行项目的核心流程,所有命令均经过实测,新手可直接复制执行。
Docker 的核心优势在于“一次构建,到处运行”,后续无论部署博客、后端项目,还是数据库,都可以通过 Docker 快速实现,无需担心环境配置冲突。