导语:在当今的个人建站、服务自建以及极客折腾过程中,容器化早已成为不可或缺的利器。无论你是准备搭建一个个人博客,还是部署复杂的网络监控系统,Docker 都能让你彻底告别“在我机器上能跑,在服务器上就挂”的环境地狱。本文将以最精炼、不拖泥带水的方式,带你从零快速在 Linux 服务器上搞定 Docker 与 Docker Compose 的标准化安装。
一、 为什么选择 Docker?
在进入正题前,先花半分钟回顾我们为什么需要它:
- 环境隔离:数据库、PHP、Nginx、Redis 各自独立运行,互不干扰,换服务器只需打包配置文件。
- 开箱即用:不需要在操作系统底层手动编译繁杂的依赖,一条命令即可启动复杂架构。
- 干净整洁:卸载应用只需移除容器与数据卷,服务器系统永远保持干干净净。
二、 第一步:彻底清道夫(卸载冲突与陈旧版本)
如果你的 VPS 购买自云厂商,系统镜像中可能已经预装了某些陈旧的系统级 Docker 工具包(例如系统的 docker.io 或 containerd),这些旧软件包不仅版本落后,还经常导致后续的官方安装脚本报错。
在正式安装前,我们先执行一次“大扫除”:
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
sudo apt-get remove -y $pkg 2>/dev/null
done
💡 小贴士:如果终端提示某些包未安装,直接忽略即可。这一步的核心目的就是扫清障碍,为官方稳定版腾出纯净空间。
三、 第二步:官方一键自动化脚本安装
Docker 官方提供了一套经过全球数百万服务器验证的自动化安装脚本。它能够智能识别你当前使用的操作系统发行版(Debian、Ubuntu、CentOS 等),并自动配置最佳的官方软件源。
1. 下载并运行安装脚本
以 root 或具备 sudo 权限的用户登录终端,依次执行:
# 下载官方一键安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
# 执行自动化安装
sudo sh get-docker.sh
稍等片刻,脚本会自动更新软件源、导入 GPG 密钥并完成核心组件的编译安装。
2. 启动服务并配置“开机自启”
安装完成后,Docker 默认可能处于待命状态。我们需要立即启动引擎,并将其注入系统的守护进程中,确保服务器意外重启后服务能自动复活:
# 启动 Docker 引擎
sudo systemctl start docker
# 设置开机自动拉起
sudo systemctl enable docker
3. 快速验收成果
运行以下命令验证引擎状态:
docker --version
当你看到类似 Docker version 27.x.x, build ... 的版本输出时,说明 Docker 引擎已稳固地驻留在你的服务器上了!
四、 第三步:配置 Docker Compose(容器编排利器)
单容器运行用 docker run 就够了,但一旦我们要部署 WordPress、数据库、缓存等多容器协同项目,Docker Compose 才是真正的效率核心。
目前 Docker Compose 主要分为两种形态:
- 现代化集成版(推荐):作为 Docker 插件运行(命令为
docker compose)。如果你使用了上面的官方最新脚本,通常已经自带了该插件。 - 传统独立二进制版:命令为带横杠的
docker-compose。为了兼顾老脚本和各种传统教程的兼容性,我们顺手把独立可执行文件也配置好:
# 1. 从 GitHub 官方 Releases 下载最新的构建产物
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 2. 为其赋予系统可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 3. 验证是否安装就绪
docker-compose --version
控制台正确打印出 Docker Compose version v2.x.x,即代表环境已完全齐备。
五、 进阶贴心优化:免 sudo 运行 Docker
默认情况下,Docker 守护进程绑定的是 Unix Socket,只有 root 用户以及拥有该 socket 权限的用户组才能直接访问。如果你经常使用普通用户管理服务器,每次敲 docker 都得前面带个 sudo 会非常繁琐。
只需一行命令将当前登录用户加入 docker 用户组即可实现“免 sudo 自由”:
# 将当前用户加入 docker 用户组
sudo usermod -aG docker $USER
# 激活新的用户组环境(或重新登录终端生效)
newgrp docker
现在直接输入 docker ps,再也不用频繁输入管理员密码了!
六、 结语
至此,你的 Linux 服务器已经拥有了一套现代、健壮、纯净的容器化基础设施。无论是准备搭博客、跑爬虫、折腾反代,还是运行私有网盘,地基已经夯实,随时准备迎接你的下一个极客项目 🚀!