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

在腾讯云 CVM(云服务器)上通过 Docker 安装 Nginx、MySQL 和 Redis 的最新稳定版,最推荐的方式是使用 docker-compose。它能一键编排所有服务,管理配置和数据卷,避免手动输入复杂的启动命令。

以下是完整的操作步骤:

1. 环境准备与登录

首先,确保你的 CVM 已安装 Docker 和 Docker Compose。如果尚未安装,请在终端执行以下命令(以 Ubuntu/CentOS 为例):

# 更新包索引
sudo apt-get update || sudo yum update -y

# 安装 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 安装 Docker Compose (如果系统未自带)
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 --version
docker-compose --version

注意:如果是首次运行 Docker 命令可能需要添加当前用户到 docker 组:sudo usermod -aG docker $USER,然后重新登录或执行 newgrp docker


2. 创建项目目录与配置文件

在服务器上创建一个专门用于存放配置的文件夹,并进入该目录:

mkdir -p ~/nginx-mysql-redis && cd ~/nginx-mysql-redis

创建 docker-compose.yml 文件。这里我们使用最新的稳定标签(目前通常为 latest,即对应最新的稳定版本),并配置了数据持久化(防止容器删除后数据丢失)。

nano docker-compose.yml

将以下内容复制粘贴进去(请根据实际需求修改密码和网络端口):

version: '3.8'

services:
  # --- Nginx ---
  nginx:
    image: nginx:latest
    container_name: my_nginx
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/html:/usr/share/nginx/html
      - ./nginx/conf.d:/etc/nginx/conf.d
    depends_on:
      - mysql
      - redis
    networks:
      - app-network

  # --- MySQL ---
  mysql:
    image: mysql:8.0
    container_name: my_mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_password_123456  # 【重要】请修改为强密码
      MYSQL_DATABASE: test_db
      MYSQL_USER: app_user
      MYSQL_PASSWORD: app_password_123456       # 【重要】请修改为强密码
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/logs:/var/log/mysql
    networks:
      - app-network
    command: --default-authentication-plugin=mysql_native_password

  # --- Redis ---
  redis:
    image: redis:7-alpine
    container_name: my_redis
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - ./redis/data:/data
    command: redis-server --appendonly yes --requirepass redis_password_123456 # 【重要】设置密码并开启持久化
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

目录结构说明
为了保持整洁,我们在 docker-compose up 之前需要手动创建对应的空目录,Docker 会自动挂载它们:

mkdir -p nginx/html nginx/conf.d
mkdir -p mysql/data mysql/logs
mkdir -p redis/data

3. 启动服务

配置完成后,使用以下命令启动所有容器:

docker-compose up -d
  • -d 表示后台运行。
  • 如果需要查看日志确认是否启动成功:docker-compose logs -f

4. 腾讯云 CVM 安全组配置(关键步骤)

这一步非常重要。默认情况下,CVM 的安全组只开放了 SSH 端口。你需要登录 腾讯云控制台 -> 云主机 (CVM) -> 安全组,添加入站规则,放行以下端口:

协议 端口范围 描述
TCP 80, 443 Nginx Web 服务
TCP 3306 MySQL 数据库
TCP 6379 Redis 缓存
TCP 22 SSH (通常已有)

安全建议:生产环境中,建议不要直接对公网开放 3306 和 6379 端口。如果可能,仅允许特定的 IP 访问这些端口,或者通过 Nginx 反向X_X/内网通信来访问数据库。


5. 验证与常用操作

验证服务状态

docker-compose ps

你应该看到三个容器状态均为 Up

检查具体服务

  • Nginx: 浏览器访问 http://<你的CVM公网IP>,应看到默认的 Nginx 欢迎页。
  • MySQL:
    docker exec -it my_mysql mysql -uroot -proot_password_123456
  • Redis:
    docker exec -it my_redis redis-cli -a redis_password_123456

停止与重启

# 停止所有服务
docker-compose down

# 重启所有服务
docker-compose restart

更新镜像

如果需要升级到最新的小版本(例如从 MySQL 8.0.3x 升级到 8.0.3y),只需执行:

docker-compose pull
docker-compose up -d

常见问题提示

  1. 权限问题:如果挂载的目录(如 ./mysql/data)是 root 创建的,而容器内是普通用户运行,可能会导致权限拒绝。如果发现无法写入数据,可以运行 sudo chown -R 999:999 ./mysql/data (针对 MySQL 8.0)。
  2. 内存不足:Redis 和 MySQL 比较消耗内存。如果你的 CVM 配置较低(如 1核 2G),建议调整 MySQL 的 innodb_buffer_pool_size 参数或在 docker-compose.yml 中限制资源配额。
  3. 数据安全:务必记得修改配置文件中预设的 root_password 等弱密码,并定期备份 ./mysql/data./redis/data 目录。
未经允许不得转载:云计算 » 腾讯云cvm docker安装nginx、mysql、redis最新稳定版?