在腾讯云轻量应用服务器上配置 Docker Compose,通常分为以下几个步骤:安装 Docker、安装 Docker Compose、编写 docker-compose.yml 文件并启动服务。以下是详细操作指南(以 Ubuntu 20.04/22.04 为例,CentOS 8+ 逻辑类似):
✅ 一、更新系统并安装依赖
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git
✅ 二、安装 Docker Engine
方法1:使用官方脚本(推荐,自动适配版本)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
💡 若网络不稳定,可改用国内镜像源(如阿里云):
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io
验证安装
docker --version
sudo systemctl enable docker
sudo systemctl start docker
# 测试运行 hello-world
sudo docker run hello-world
✅ 三、安装 Docker Compose
方案 A:二进制方式(推荐,独立管理)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)"
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
方案 B:通过 pip(需 Python3-pip)
sudo apt install -y python3-pip
pip3 install --user docker-compose
# 将 bin 加入 PATH(临时)
export PATH=$HOME/.local/bin:$PATH
# 永久生效:echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
✅ 建议优先使用 方案 A,避免权限和依赖问题。
✅ 四、创建项目目录与 docker-compose.yml
mkdir ~/my-app
cd ~/my-app
nano docker-compose.yml
示例(Nginx + PHP-FPM + MySQL):
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
depends_on:
- app
app:
image: php:8.2-fpm
volumes:
- ./src:/var/www/html
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: your_strong_password
MYSQL_DATABASE: mydb
MYSQL_USER: myuser
MYSQL_PASSWORD: mypassword
volumes:
- mysql_data:/var/lib/mysql
restart: unless-stopped
volumes:
mysql_data:
📌 注意:
- 确保本地有对应目录结构(如
./html,./src),或注释掉 volume 映射。 - 敏感信息(密码)不要硬编码在生产环境;可使用
.env文件或 Docker Secrets(高级用法)。
创建 .env 文件(可选但推荐):
cat > .env << EOF
MYSQL_ROOT_PASSWORD=your_strong_password
MYSQL_DATABASE=mydb
MYSQL_USER=myuser
MYSQL_PASSWORD=mypassword
EOF
然后在 docker-compose.yml 中用 ${VARIABLE} 引用:
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
...
✅ 五、启动服务
# 后台启动所有服务
docker-compose up -d
# 查看状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
# 停止并删除容器 + 卷(谨慎!数据会丢失)
docker-compose down -v
✅ 六、(可选)配置开机自启 & 防火墙
1. 设置 Docker 开机自启(已默认启用)
sudo systemctl enable docker
2. 开放端口(轻量服务器默认安全组需手动配置)
| 登录 腾讯云控制台 → 找到实例 → 安全组 → 添加入方向规则: | 协议 | 端口范围 | 来源 IP | 说明 |
|---|---|---|---|---|
| TCP | 80 | 0.0.0.0/0 | Web 访问 | |
| TCP | 3306 | 你的公网IP | 仅允许特定 IP 连接数据库(生产环境必做!) |
⚠️ 切勿将数据库端口(如 3306)对
0.0.0.0/0开放,极易被攻击!
🔍 常见问题排查
| 问题 | 解决方案 |
|---|---|
docker-compose: command not found |
检查是否执行了 chmod +x,或确认路径是否在 $PATH 中 |
Permission denied 启动容器 |
当前用户未加入 docker 组:sudo usermod -aG docker $USER,然后重新登录 |
| 容器无法联网 | 检查 Docker 桥接网络是否正常:docker network ls;重启 Docker:sudo systemctl restart docker |
| 内存不足导致 OOM | 轻量机内存较小,限制容器资源: 在 docker-compose.yml 中添加deploy.resources.limits.memory: 512M |
需要我为你生成一个具体场景的完整 docker-compose.yml(如 WordPress、GitLab、Next.js 等)吗?欢迎告诉我你的需求 😊
CLOUD云计算