走啊走
奋斗

腾讯云cvm docker安装nginx、mysql、redis最新稳定版?

服务器价格表

在腾讯云 CVM(云服务器)上安装 Docker 并部署 Nginx、MySQL 和 Redis 的最新稳定版,最推荐的方式是使用 Docker Compose 进行编排。这种方式可以将所有服务配置在一个 docker-compose.yml 文件中,方便一键启动、管理和更新。

以下是完整的操作指南:

第一步:在 CVM 上安装 Docker 和 Docker Compose

首先通过 SSH 登录到你的腾讯云 CVM,执行以下命令安装 Docker Engine 和 Docker Compose(以 Ubuntu/Debian 为例,CentOS 逻辑类似):

# 1. 更新包索引
sudo apt-get update

# 2. 安装必要的依赖
sudo apt-get install -y ca-certificates curl gnupg lsb-release

# 3. 添加 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

# 4. 设置仓库
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

# 5. 安装 Docker Engine, CLI, Containerd
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 6. 验证安装
docker --version
docker compose version

注意:如果是 CentOS 系统,请将上述 apt-get 相关命令替换为 yumdnf 的安装方式,或者直接运行 curl -fsSL https://get.docker.com | sh


第二步:创建项目目录与配置文件

为了保持环境整洁,我们在 /opt/root 下创建一个专用目录。

mkdir -p ~/my-app && cd ~/my-app

创建 docker-compose.yml 文件:

nano docker-compose.yml

将以下内容复制进去。注意:代码中已默认使用最新的稳定版标签(如 latest 通常指向当前最新稳定版,或者指定具体版本号如 mysql:8.0)。

version: '3.8'

services:
  # Nginx 服务
  nginx:
    image: nginx:latest
    container_name: my-nginx
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      # 挂载自定义配置文件(可选,若不需要自定义可注释掉)
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./html:/usr/share/nginx/html:ro
    depends_on:
      - mysql
      - redis
    networks:
      - app-network

  # MySQL 服务 (使用 8.0 版本作为最新稳定版代表)
  mysql:
    image: mysql:8.0
    container_name: my-mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_strong_password_123  # ⚠️ 请修改为你的强密码
      MYSQL_DATABASE: mydb
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword123                  # ⚠️ 请修改为你的强密码
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql
      - ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
    networks:
      - app-network
    command: --default-authentication-plugin=mysql_native_password

  # Redis 服务 (使用 7.2 版本作为最新稳定版代表)
  redis:
    image: redis:7.2-alpine
    container_name: my-redis
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
    command: redis-server --appendonly yes --requirepass your_redis_password  # ⚠️ 请修改密码
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

volumes:
  mysql_data:
  redis_data:

关键配置说明:

  1. 密码安全:请务必修改 MYSQL_ROOT_PASSWORDMYSQL_PASSWORD 以及 Redis 的 requirepass。生产环境严禁使用弱口令。
  2. 端口映射
    • Nginx 暴露了 80 和 443 端口。
    • MySQL 暴露了 3306 端口(重要:需确保在腾讯云控制台的安全组中放行该端口,否则外部无法连接)。
    • Redis 暴露了 6379 端口(强烈建议:Redis 默认不建议直接暴露公网,如需远程访问,请在安全组限制 IP;本地开发可保留,生产环境建议仅内网访问)。
  3. 数据持久化:使用了 volumes,即使容器删除,数据也不会丢失。

第三步:准备辅助文件(可选但推荐)

为了让 Nginx 能正常工作,我们需要创建简单的目录结构。

# 创建目录
mkdir -p nginx html

# 创建一个简单的 index.html 测试页面
echo "<h1>Hello from Docker on Tencent Cloud!</h1>" > html/index.html

# (可选) 如果你需要自定义 Nginx 配置,可以在此处编写 nginx.conf,否则可以使用镜像默认配置。
# 如果不想挂载自定义配置,可以在 docker-compose.yml 中注释掉 volumes 下的 nginx 部分。

第四步:启动服务

在项目目录下执行启动命令:

# 后台启动所有服务
docker compose up -d

# 查看运行状态
docker compose ps

如果看到三个服务的状态都是 Up,则说明安装成功。


第五步:腾讯云安全组配置(至关重要)

Docker 只是让服务在服务器内部运行,如果云服务器的防火墙(安全组)没开,外部依然无法访问。

  1. 登录 腾讯云控制台
  2. 进入 CVM -> 实例列表 -> 点击你的实例 ID。
  3. 找到 安全组 区域,点击“管理”或对应的安全组 ID。
  4. 点击 入方向 -> 新建规则,添加以下规则:
    • Nginx: 协议 TCP,端口 80, 443,来源 0.0.0.0/0 (或特定 IP)。
    • MySQL: 协议 TCP,端口 3306,来源 0.0.0.0/0 (生产环境建议仅允许特定 IP 访问,不要对全网开放)。
    • Redis: 协议 TCP,端口 6379,来源 0.0.0.0/0 (极度不推荐对公网开放,建议仅在应用服务器内网互通,或仅允许特定管理 IP)。

常用维护命令

  • 查看日志
    docker compose logs -f nginx
    docker compose logs -f mysql
  • 停止服务
    docker compose down
  • 重启服务
    docker compose restart
  • 更新到最新版本(如果有新版本发布):
    docker compose pull
    docker compose up -d

总结

通过以上步骤,你已经在腾讯云 CVM 上利用 Docker 快速搭建了包含 Nginx、MySQL 8.0 和 Redis 7.2 的最新稳定版微服务架构。记得在生产环境中务必检查安全组策略容器内的数据库密码安全性。