努力
加油

腾讯云轻量服务器如何安装配置Docker环境?

在腾讯云轻量应用服务器(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 系

  1. 安装依赖和配置仓库

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  2. 安装 Docker

    sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
  3. 启动并设置开机自启

    sudo systemctl start docker
    sudo systemctl enable docker
  4. 验证安装

    sudo docker run hello-world

    看到 "Hello from Docker!" 说明安装成功。

场景 B:Ubuntu / Debian 系

  1. 安装依赖和配置仓库
    
    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
  1. 启动并设置开机自启

    sudo systemctl start docker
    sudo systemctl enable docker
  2. 验证安装

    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

常见问题排查

  1. 权限问题:如果遇到 permission denied,请确认是否已正确配置 usermod -aG docker 并重新登录。
  2. 端口冲突:轻量服务器防火墙默认可能只开放了特定端口(如 80, 443, 22)。如果你在容器内启动了其他端口(如 3306, 6379),记得去腾讯云控制台 -> 轻量应用服务器 -> 防火墙规则中添加入站规则,否则外部无法访问。
  3. 国内镜像提速:由于网络原因,从 Docker Hub 拉取镜像可能很慢。建议配置国内镜像提速器。
    • 编辑 /etc/docker/daemon.json,添加 registry-mirrors 字段。
    • 可以使用阿里云、腾讯云或其他第三方提供的免费提速地址(例如腾讯云的镜像提速器通常在控制台“容器镜像服务”页面可以找到)。

通过以上步骤,你就在一个干净、稳定且适合轻量级应用的服务器上完成了 Docker 环境的搭建。接下来就可以尽情部署你的 Web 服务、数据库或中间件了。