速卖通素材
奋斗

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

服务器

在腾讯云 CVM(云服务器)上通过 Docker 快速部署 Nginx、MySQL 和 Redis,推荐使用最新稳定版的官方镜像。

以下是完整的操作指南,包含安装前的环境准备、一键启动命令以及数据持久化配置(防止重启后数据丢失)。

1. 前置准备:登录与基础检查

首先,通过 SSH 登录到你的腾讯云 CVM,并确认 Docker 已安装。如果未安装,请执行以下命令:

# 更新软件源
sudo apt-get update -y 

# 安装 Docker (以 Ubuntu/Debian 为例,CentOS 使用 yum)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

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

注意:在腾讯云上,建议先配置安全组(Security Group),放行 80 (Nginx), 3306 (MySQL), 6379 (Redis) 端口,否则外部无法访问。


2. 创建本地目录结构

为了数据持久化(避免容器删除后数据丢失),我们需要在宿主机上创建对应的挂载目录。

# 创建统一的数据目录
mkdir -p /data/nginx/conf.d
mkdir -p /data/mysql/data
mkdir -p /data/redis/conf
mkdir -p /data/redis/data

# 赋予当前用户权限(根据你的实际用户名调整,如 root 则跳过)
# sudo chown -R $USER:$USER /data

3. 启动容器 (推荐方式:Docker Compose)

虽然可以使用 docker run 命令逐一切入,但使用 docker-compose 管理多容器更稳定且易于维护。

步骤 A:编写 docker-compose.yml

在项目目录(例如 /data/docker-stack)下创建文件:

cd /data
mkdir docker-stack
cd docker-stack
nano docker-compose.yml

将以下内容粘贴进去(已配置为拉取 latest 标签的最新稳定版):

version: '3.8'

services:
  # --- Nginx ---
  nginx:
    image: nginx:latest
    container_name: my-nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/html:/usr/share/nginx/html
      - ./nginx/conf.d:/etc/nginx/conf.d
    restart: always
    networks:
      - app-net

  # --- MySQL ---
  mysql:
    image: mysql:latest
    container_name: my-mysql
    environment:
      MYSQL_ROOT_PASSWORD: your_strong_password_123  # 请修改此密码
      MYSQL_DATABASE: test_db
      MYSQL_USER: dev_user
      MYSQL_PASSWORD: dev_password_123
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/data:/var/lib/mysql
    restart: always
    command: --default-authentication-plugin=mysql_native_password
    networks:
      - app-net

  # --- Redis ---
  redis:
    image: redis:latest
    container_name: my-redis
    ports:
      - "6379:6379"
    volumes:
      - ./redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - ./redis/data:/data
    command: redis-server /usr/local/etc/redis/redis.conf
    restart: always
    networks:
      - app-net

networks:
  app-net:
    driver: bridge

关键提示

  1. 密码安全:请务必将 MYSQL_ROOT_PASSWORD 等替换为你自己的强密码。
  2. Redis 配置:上面的命令使用了自定义配置文件来开启持久化。你需要手动创建一个空的 redis.conf 文件放在 ./redis/conf/ 目录下,或者直接使用默认配置(去掉 commandvolumes 中的 conf 映射即可,但那样会丢失数据)。
    • 简化方案:如果你不想写复杂的 redis.conf,可以直接删除 command 行,并将 ./redis/conf/redis.conf 卷映射移除,只保留 ./redis/data:/data

步骤 B:初始化目录并启动

根据你刚才编辑的配置,确保目录存在并启动:

# 创建必要的空目录供 Nginx 和 Redis 使用
mkdir -p html
touch html/index.html
mkdir -p conf.d
mkdir -p redis/conf

# 如果是简化的 Redis 配置(无自定义 conf 文件),请注释掉 docker-compose.yml 中 redis 服务的 command 和 conf 卷映射部分。
# 这里假设我们使用最简单的默认配置启动:
# 重新编辑 docker-compose.yml 中的 redis 部分如下(更简单):
# redis:
#   image: redis:latest
#   container_name: my-redis
#   ports:
#     - "6379:6379"
#   volumes:
#     - ./redis/data:/data
#   restart: always
#   command: redis-server --appendonly yes  # 开启持久化

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

(注:如果你复制了上面的完整 YAML 文件,请先确保 redis/conf/redis.conf 文件存在,或者按照“简化方案”修改 YAML)


4. 验证运行状态

查看容器状态

docker-compose ps

你应该看到 my-nginx, my-mysql, my-redis 三个容器状态均为 Up

测试连通性

  1. Nginx: 浏览器访问 http://<你的CVM公网IP>,应看到 Nginx 欢迎页。
  2. MySQL:
    docker exec -it my-mysql mysql -uroot -p
    # 输入密码后,输入 show databases; 查看是否成功
  3. Redis:
    docker exec -it my-redis redis-cli ping
    # 应返回 PONG

5. 进阶优化建议 (生产环境必读)

  1. 网络隔离
    上述配置将 MySQL 和 Redis 暴露到了公网端口 (3306, 6379)。在生产环境中,强烈建议不要直接暴露数据库端口到公网

    • 做法:在 docker-compose.yml 中移除 ports 字段,让 Nginx 通过内部网络访问它们。
    • 例外:只有当你在腾讯云控制台的“安全组”中严格限制了特定 IP 访问时,才允许开放数据库端口。
  2. 环境变量加密
    不要直接在 docker-compose.yml 中明文写密码。建议使用 .env 文件和 environment_file 功能。

    • 创建 .env 文件存放密码。
    • 在 yaml 中使用 env_file: .env
  3. 日志管理
    默认情况下 Docker 日志会无限增长。建议在 docker-compose.yml 中为每个服务添加 logging 配置限制大小:

    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
  4. 备份策略
    定期备份 /data/mysql/data/data/redis/data 目录到对象存储 (COS) 或本地其他磁盘,以防服务器故障。

通过以上步骤,你就在腾讯云 CVM 上完成了一个基于 Docker 的最新稳定版 Nginx + MySQL + Redis 开发/生产环境搭建。

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