在腾讯云轻量应用服务器(Lighthouse)上配置 Docker Compose,需按以下清晰、安全、可复现的步骤操作。本文以 Ubuntu 22.04/24.04 或 CentOS 7/8/9 系统为例(推荐 Ubuntu 22.04 LTS),适用于新购或已有的轻量服务器。
✅ 前提条件
- 已登录轻量服务器(通过 SSH 或 Web Shell)
- 服务器已联网(确保
apt/dnf可正常访问) - 推荐使用非 root 用户(如
ubuntu或lighthouse),必要时用sudo
🔧 步骤一:安装 Docker(Docker Compose 依赖)
⚠️ 注意:Docker 官方已将
docker-compose(v1)弃用,推荐使用 Docker Compose Plugin(即docker compose,v2+,集成在docker命令中,更稳定且与 Docker CLI 深度集成)。
✅ 推荐方式:安装 Docker Engine + Compose Plugin(官方推荐)
▶ Ubuntu/Debian 系统:
# 1. 更新系统 & 安装依赖
sudo apt update && sudo apt install -y
ca-certificates
curl
gnupg
lsb-release
# 2. 添加 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
# 3. 添加稳定版仓库(根据你的 Ubuntu 版本调整 codename,如 jammy=22.04, noble=24.04)
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
# 4. 安装 Docker Engine + CLI + Compose Plugin
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 5. 验证安装
docker --version # 应输出类似:Docker version 26.x.x
docker compose version # 应输出:Docker Compose version v2.x.x
▶ CentOS/RHEL/Rocky/AlmaLinux(以 CentOS 7+ 或 Rocky 9 为例):
# 启用 Extras 仓库(CentOS 7)或 CRB(Rocky/Alma 8+)
sudo dnf config-manager --enable crb # Rocky/Alma 8+/CentOS 8+
# CentOS 7:
# sudo yum install -y epel-release
# 安装必要工具
sudo dnf install -y dnf-plugins-core
# 添加 Docker 仓库
sudo dnf config-manager
--add-repo
https://download.docker.com/linux/centos/docker-ce.repo
# 安装(注意:CentOS 7 需指定版本避免内核不兼容;推荐 Rocky/Alma 9)
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动并设开机自启
sudo systemctl enable docker
sudo systemctl start docker
# 验证
docker --version && docker compose version
🛡️ 步骤二:权限配置(关键!避免每次用 sudo)
# 将当前用户加入 docker 组(替换 your_user 为实际用户名,如 ubuntu)
sudo usermod -aG docker $USER
# 刷新组权限(无需重启,但需重新登录 Shell 或执行)
newgrp docker # 或直接关闭重开 SSH 连接
# 验证(不加 sudo 能运行)
docker run --rm hello-world # 应看到欢迎信息
✅ 成功标志:无
permission denied错误,且docker compose version正常输出。
📁 步骤三:准备并运行 Docker Compose 项目
示例:部署一个 Nginx + Redis 的简单服务
# 创建项目目录
mkdir ~/myapp && cd ~/myapp
# 创建 docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
cache:
image: redis:7-alpine
command: redis-server --save 20 1 --loglevel warning
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
EOF
# 创建简单 HTML 页面(可选)
mkdir -p html
echo "<h1>Hello from Tencent Cloud LightHouse + Docker Compose!</h1>" > html/index.html
# 启动服务(后台运行)
docker compose up -d
# 查看状态
docker compose ps
docker compose logs -f # 实时日志(Ctrl+C 退出)
✅ 访问 http://<你的轻量服务器公网IP> 即可看到页面。
🔐 补充:安全与生产建议(轻量服务器适用)
| 项目 | 建议 |
|---|---|
| 防火墙 | 腾讯云控制台 → 轻量服务器 → 安全组 中放行所需端口(如 80/443/22),禁用默认全通规则 |
| HTTPS | 使用 nginx-proxy + letsencrypt-companion 或手动配置 Certbot(需绑定域名) |
| 数据持久化 | 将数据库、配置、上传文件等挂载到 /data 等独立目录(避免容器删除丢失) |
| 自动更新 | 轻量服务器磁盘较小,定期清理:docker system prune -a -f && docker volume prune -f |
| 监控 | 可选部署 cAdvisor + Prometheus,或使用腾讯云「云监控」插件 |
❌ 常见问题排查
| 现象 | 解决方案 |
|---|---|
Permission denied while trying to connect to Docker daemon |
执行 sudo usermod -aG docker $USER + newgrp docker 或重登 |
docker compose: command not found |
检查是否安装了 docker-compose-plugin(非旧版 docker-compose pip 包);确认 docker compose(无 -)是正确命令 |
Cannot connect to the Docker daemon |
sudo systemctl status docker → 若未运行则 sudo systemctl start docker |
| 轻量服务器端口无法访问 | ✅ 检查:① 服务器本地 curl -I http://localhost 是否通;② 腾讯云安全组是否放行该端口;③ 服务器防火墙(ufw/firewalld)是否拦截(轻量默认关闭,但建议确认) |
📌 附:一键脚本(可选,仅用于测试环境)
# 复制粘贴运行(Ubuntu 22.04+)
curl -fsSL https://get.docker.com | sh &&
sudo usermod -aG docker $USER &&
newgrp docker &&
docker run --rm hello-world &&
echo "✅ Docker & Compose installed successfully!"
⚠️ 生产环境请勿直接执行未审核脚本,建议分步执行并理解每一步。
如需进一步帮助,例如:
- 部署 WordPress / Nextcloud / Portainer 可视化面板
- 配置 HTTPS(Nginx + Let’s Encrypt)
- 使用腾讯云 COS 作为对象存储后端
- Docker Compose 多环境(dev/staging/prod)管理
欢迎继续提问,我可以为你定制完整 YAML 和部署指南 👇
是否需要我为你生成一个 带 HTTPS、反向X_X、自动续签 的生产级 docker-compose.yml 模板?🚀
CLOUD技术博