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

在腾讯云 CVM(云服务器)上安装最新稳定版的 Nginx、MySQL 和 Redis,使用 Docker 是最灵活且隔离性好的方式。

重要提示:Docker Hub 上的“最新版”标签(latest)通常指向最新的开发版或不稳定版。为了生产环境的稳定性,建议明确指定具体的大版本稳定号(例如 MySQL 8.0, Nginx 1.24, Redis 7)。

以下是基于 Ubuntu 22.04CentOS 7/8 的通用操作步骤。请确保你的 CVM 已开通公网安全组端口(80, 3306, 6379)。


第一步:安装 Docker 环境

首先需要在 CVM 上安装 Docker Engine。

1. Ubuntu / Debian

# 更新软件包索引
sudo apt-get update

# 安装依赖
sudo apt-get install -y ca-certificates curl gnupg lsb-release

# 添加 Docker 官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /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

# 安装 Docker
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

2. CentOS / RedHat

# 安装 yum-utils
sudo yum install -y yum-utils

# 配置 Docker 官方源 (以 Docker CE 24.x 为例)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

验证安装:运行 docker --versiondocker compose version


第二步:创建网络与目录结构

为了便于管理,我们创建一个专用网络,并将数据持久化到宿主机目录。

# 创建项目目录
mkdir -p ~/nginx-docker-project/{mysql-data,redis-data,nginx-html}
cd ~/nginx-docker-project

# 创建自定义 Docker 网络
docker network create my-app-network

第三步:编写 Docker Compose 文件

使用 docker-compose.yml 可以一键编排三个服务。我们将指定最新稳定版标签。

创建文件 docker-compose.yml

version: '3.8'

services:
  # --- Nginx ---
  nginx:
    image: nginx:1.25-alpine  # 1.25 是最新稳定版,alpine 镜像体积小
    container_name: nginx-container
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx-html:/usr/share/nginx/html
      # 如需挂载配置文件,取消下面注释并准备 conf.d 目录
      # - ./conf/nginx.conf:/etc/nginx/nginx.conf
    networks:
      - my-app-network
    depends_on:
      - mysql
      - redis

  # --- MySQL (8.0 是目前主流稳定版) ---
  mysql:
    image: mysql:8.0
    container_name: mysql-container
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_strong_password  # 【必须修改】
      MYSQL_DATABASE: mydb
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword                 # 【必须修改】
    ports:
      - "3306:3306"
    volumes:
      - ./mysql-data:/var/lib/mysql
    networks:
      - my-app-network
    command: --default-authentication-plugin=mysql_native_password

  # --- Redis (7.2 是最新稳定版) ---
  redis:
    image: redis:7.2-alpine
    container_name: redis-container
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - ./redis-data:/data
    command: redis-server --appendonly yes --requirepass your_redis_password # 【必须修改】
    networks:
      - my-app-network

networks:
  my-app-network:
    driver: bridge

⚠️ 安全警告

  1. 请务必将 YAML 中的 your_strong_passwordmypassword 替换为强密码。
  2. 生产环境中,强烈建议不要将数据库端口(3306, 6379)直接映射到公网(即去掉 ports 部分),或者在腾讯云控制台的安全组中限制仅允许特定 IP 访问这些端口。

第四步:启动服务

在项目目录下执行:

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

# 查看运行状态
docker compose ps

如果看到 StatusUp,说明安装成功。


第五步:后续配置与优化(腾讯云环境特有)

1. 配置 Nginx 反向X_X(可选)

如果你希望 Nginx 作为入口转发请求到后端应用(如 PHP/Java/Node),需要修改 ./nginx-html 下的 index.html 或添加 nginx.conf

示例 nginx.conf 内容(放在 ./conf/nginx.conf):

events { worker_connections 1024; }
http {
    server {
        listen 80;
        server_name _;

        location / {
            root /usr/share/nginx/html;
            index index.html;
        }

        # 示例:转发 API 请求
        # location /api {
        #     proxy_pass http://backend-service:8080;
        # }
    }
}

注意:如果使用自定义配置文件,需在 yaml 中取消对应的 volume 挂载注释。

2. 腾讯云安全组配置

登录 腾讯云控制台 -> 云主机 (CVM) -> 安全组
确保以下端口已放行(入方向):

  • 80 (HTTP)
  • 443 (HTTPS)
  • 3306 (MySQL) -> 建议仅对运维 IP 开放,或关闭此端口映射,通过内网连接
  • 6379 (Redis) -> 建议仅对运维 IP 开放,或关闭此端口映射

3. 数据备份

由于使用了 volumes 挂载本地目录,数据实际上存储在 CVM 的系统盘上。

  • 定期快照:在腾讯云控制台对 CVM 进行系统盘快照。
  • 异地备份:建议编写脚本将 ./mysql-data./redis-data 打包上传到腾讯云 COS(对象存储)。

常见问题排查

  1. 容器无法启动?
    • 检查日志:docker logs <container_name>
    • 常见原因:端口被占用(宿主机已有其他程序占用了 80 或 3306)、密码不符合策略。
  2. Nginx 无法访问?
    • 确认 CVM 安全组是否放行了 80 端口。
    • 确认浏览器使用的是 http://<CVM公网IP>
  3. 如何升级版本?
    • 修改 docker-compose.yml 中的 image 版本号(例如从 8.0 改为 8.0.35)。
    • 执行 docker compose pull 拉取新镜像。
    • 执行 docker compose up -d 重启容器(数据卷会自动保留)。

通过以上步骤,你将在腾讯云 CVM 上获得一个基于最新稳定版的 Nginx + MySQL + Redis 开发/测试环境。

未经允许不得转载:CLOUD云枢 » 腾讯云cvm docker安装nginx、mysql、redis最新稳定版?