在腾讯云轻量应用服务器(Lighthouse)上部署 Docker 环境,其实和在其他 Linux VPS 上操作没有本质区别,但考虑到轻量服务器的特性(通常配置较低、预装系统多为精简版),我们需要更注重稳定性和资源占用。
以下是基于主流发行版(CentOS Stream 8/9, Ubuntu 20.04/22.04, Debian 11/12)的标准安装流程。我会尽量避开那些过时的 apt-key 老方法,使用目前最稳妥的官方推荐方式。
第一步:系统准备与清理
首先,通过 SSH 登录到你的轻量服务器。
1. 检查内核版本
Docker 对内核版本有一定要求(建议 3.10+,最好 5.4+)。轻量服务器默认的内核通常都满足要求,但如果你之前手动升级过内核或使用了特殊定制镜像,务必确认一下:
uname -r
2. 卸载旧版本(如果存在)
如果你之前尝试过安装 Docker,或者系统里残留了 docker-engine, docker.io, containerd 等包,建议先清理干净,避免冲突:
# CentOS/RHEL 系列
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
podman
runc
# Ubuntu/Debian 系列
sudo apt-get remove docker docker-engine docker.io containerd runc
3. 更新系统包
确保你的包管理器是最新的:
# CentOS
sudo yum update -y
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
第二步:安装 Docker Engine
这里推荐使用 Docker 官方仓库进行安装,这样后续升级方便,且能获取到较新的稳定版本。
场景 A:CentOS Stream / RHEL 系
-
安装依赖和配置仓库
sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -
安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin -
启动并设置开机自启
sudo systemctl start docker sudo systemctl enable docker -
验证安装
sudo docker run hello-world看到 "Hello from Docker!" 说明安装成功。
场景 B:Ubuntu / Debian 系
- 安装依赖和配置仓库
sudo apt-get install ca-certificates curl gnupg lsb-release
添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
设置仓库
echo
"deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
*(注意:如果是 Debian,将上面的 `ubuntu` 替换为 `debian`,并将 `$(lsb_release -cs)` 替换为你的代号如 `bullseye`)*
2. **安装 Docker**
```bash
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
-
启动并设置开机自启
sudo systemctl start docker sudo systemctl enable docker -
验证安装
sudo docker run hello-world
第三步:关键优化(针对轻量服务器)
轻量服务器通常内存较小(如 2G 或 4G),直接运行 Docker 可能会因为 OOM(内存溢出)导致服务崩溃。以下两步非常必要:
1. 配置非 root 用户运行 Docker(可选但推荐)
默认情况下,只有 root 用户可以执行 docker 命令。为了安全和管理方便,可以创建一个 docker 用户组,并将你的普通用户加入其中。
# 创建 docker 组
sudo groupadd docker
# 将当前用户加入 docker 组(替换 $USER 为你当前的用户名,或者直接 echo $USER)
sudo usermod -aG docker $USER
# 重启生效
newgrp docker
注意:修改后需要重新登录 SSH 才能生效。之后你就不需要每次都在命令前加 sudo 了。
2. 调整 Docker 日志驱动(防止磁盘爆满)
Docker 默认使用 json-file 日志驱动,如果不限制大小,日志文件会迅速撑爆你的系统盘。对于轻量服务器,强烈建议限制日志大小。
编辑 /etc/docker/daemon.json 文件:
sudo vi /etc/docker/daemon.json
如果没有该文件,新建一个。写入以下内容:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
这表示每个日志文件最大 10MB,最多保留 3 个文件。
然后重启 Docker 服务使配置生效:
sudo systemctl restart docker
3. 交换空间(Swap)建议
如果你的轻量服务器内存小于 2GB,且计划运行多个容器(如 MySQL + Nginx + Redis),建议开启 Swap 以防万一。
# 创建一个 2GB 的 swap 文件
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 永久生效
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
第四步:常用管理命令速查
安装完成后,你可以使用以下命令进行日常维护:
- 查看 Docker 状态:
systemctl status docker - 查看正在运行的容器:
docker ps - 查看所有容器(包括停止的):
docker ps -a - 拉取镜像:
docker pull nginx:latest - 运行容器:
docker run -d -p 80:80 --name my-nginx nginx - 查看容器日志:
docker logs -f <容器ID或名称> - 进入容器内部:
docker exec -it <容器ID或名称> /bin/bash
常见问题排查
- 权限问题:如果遇到
permission denied,请确认是否已正确配置usermod -aG docker并重新登录。 - 端口冲突:轻量服务器防火墙默认可能只开放了特定端口(如 80, 443, 22)。如果你在容器内启动了其他端口(如 3306, 6379),记得去腾讯云控制台 -> 轻量应用服务器 -> 防火墙规则中添加入站规则,否则外部无法访问。
- 国内镜像提速:由于网络原因,从 Docker Hub 拉取镜像可能很慢。建议配置国内镜像提速器。
- 编辑
/etc/docker/daemon.json,添加registry-mirrors字段。 - 可以使用阿里云、腾讯云或其他第三方提供的免费提速地址(例如腾讯云的镜像提速器通常在控制台“容器镜像服务”页面可以找到)。
- 编辑
通过以上步骤,你就在一个干净、稳定且适合轻量级应用的服务器上完成了 Docker 环境的搭建。接下来就可以尽情部署你的 Web 服务、数据库或中间件了。
云技术博客