奋斗
努力

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

云计算

在腾讯云 CVM(云服务器)上通过 Docker 安装 Nginx、MySQL 和 Redis,最推荐的方式是使用 Docker Compose。这种方式可以将所有服务定义在一个 docker-compose.yml 文件中,方便统一管理、一键启动和版本控制。

以下是基于最新稳定版(截至 2024 年)的完整部署方案。

前置准备:安装 Docker 环境

如果你尚未在 CVM 上安装 Docker 和 Docker Compose,请先执行以下命令(以 Ubuntu/Debian 为例,CentOS 类似):

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

# 2. 安装 Docker Engine
sudo apt-get install -y docker.io

# 3. 安装 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

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

注意:如果是生产环境,建议将当前用户加入 docker 组,避免每次运行都加 sudo:
sudo usermod -aG docker $USER (需重新登录生效)


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

在 CVM 上创建一个专门用于存放配置文件的目录,并编写 docker-compose.yml。

mkdir ~/my-web-stack
cd ~/my-web-stack

新建 docker-compose.yml 文件:

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/conf.d:/etc/nginx/conf.d
      - ./nginx/html:/usr/share/nginx/html
    depends_on:
      - mysql
      - redis
    restart: always
    networks:
      - web-net

  # --- MySQL ---
  mysql:
    image: mysql:8.0
    container_name: my-mysql
    environment:
      MYSQL_ROOT_PASSWORD: your_strong_password_here
      MYSQL_DATABASE: test_db
      MYSQL_USER: app_user
      MYSQL_PASSWORD: app_password
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql
      # 可选:挂载初始化脚本或日志
      - ./mysql/init:/docker-entrypoint-initdb.d
    restart: always
    networks:
      - web-net
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 5

  # --- Redis ---
  redis:
    image: redis:7-alpine
    container_name: my-redis
    command: redis-server --appendonly yes --requirepass your_redis_password
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
    restart: always
    networks:
      - web-net
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  mysql_data:
  redis_data:

networks:
  web-net:
    driver: bridge

⚠️ 重要安全提示

  1. 密码修改:请务必将 your_strong_password_here、app_password 和 your_redis_password 替换为强密码。
  2. 端口暴露:示例中开放了 80, 443, 3306, 6379。
    • Nginx (80/443):通常必须开放。
    • MySQL (3306) & Redis (6379):强烈建议不要直接暴露在公网。
      • 最佳实践:在腾讯云控制台的安全组中,仅允许你的开发机 IP 访问这两个端口,或者不开放这些端口,让应用容器通过内部网络通信。
      • 如果必须在公网测试,请确保密码极其复杂。

第三步:补充必要的子目录结构

为了让 Nginx 正常工作,需要创建对应的目录结构:

mkdir -p nginx/conf.d nginx/html
# 创建默认首页
echo "<h1>Hello from Docker on Tencent Cloud!</h1>" > nginx/html/index.html

你可以创建一个简单的 Nginx 配置文件来反向X_X(可选):

cat > nginx/conf.d/default.conf << EOF
server {
    listen 80;
    server_name localhost;

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

    # 示例:后端 API X_X到本地其他服务(如需)
    # location /api/ {
    #     proxy_pass http://backend:8000;
    # }
}
EOF

第四步:启动服务

在项目目录下执行:

docker-compose up -d
  • -d 表示后台运行。
  • 首次运行会自动拉取镜像(可能需要几分钟)。

第五步:验证与查看状态

  1. 查看容器状态:

    docker-compose ps

    所有服务的 STATUS 应显示为 Up。

  2. 查看日志(排查问题):

    # 查看所有日志
    docker-compose logs -f
    
    # 只看 Nginx 日志
    docker-compose logs -f nginx
  3. 浏览器访问:
    打开浏览器,输入你的 CVM 公网 IP(例如 http://<你的CVM_IP>),你应该能看到 "Hello from Docker…" 页面。

  4. 检查数据库连接(可选):
    进入 MySQL 容器测试连接:

    docker exec -it my-mysql mysql -uroot -pyour_strong_password_here

进阶建议:腾讯云环境优化

  1. 安全组配置:
    登录腾讯云控制台 -> 云主机 -> 安全组。

    • 放行:TCP 80, 443 (Web 服务)。
    • 限制:TCP 3306, 6379 (数据库/缓存)。仅添加你个人电脑的 IP,不要对 0.0.0.0/0 开放,防止被暴力破解。
  2. 持久化备份:
    上面的配置使用了 Docker Volumes (mysql_data, redis_data),数据存储在 CVM 本地磁盘。

    • 重要:如果 CVM 实例被释放或重装系统,数据会丢失。建议定期使用 docker run ... tar 命令备份卷数据,或使用腾讯云提供的云硬盘快照功能。
  3. 更换为特定版本:
    如果你不需要“最新”版本,而是需要特定的稳定版(例如 MySQL 5.7 或 Redis 6),只需修改 image 字段:

    • image: mysql:5.7
    • image: redis:6-alpine

现在,你的腾讯云 CVM 已经拥有了一个标准的 Nginx + MySQL + Redis 容器化环境。

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