走啊走
加油

腾讯云轻量应用服务器如何配置Docker Compose?

服务器价格表

在腾讯云轻量应用服务器上配置 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 等)吗?欢迎告诉我你的需求 😊