使用 Docker Compose 快速部署 Redis 與 RedisInsight 視覺化管理工具

使用 Docker Compose 快速部署 Redis 與 RedisInsight 視覺化管理工具
Photo by Samsung Memory / Unsplash

在現代應用開發中,Redis 已成為不可或缺的記憶體型資料儲存系統。本文將手把手教你,如何透過 Docker Compose 快速部署一個帶有基本安全性設定(密碼與使用者權限)的 Redis 服務,並使用 RedisInsight 來做可視化管理!


目錄

  1. 專案結構概覽
  2. 撰寫 docker-compose.yml
  3. 設定 redis.conf
  4. 啟動服務
  5. 透過 RedisInsight 連接 Redis
  6. 小結

1. 專案結構概覽

首先,建立一個新的資料夾,例如 redis-docker,裡面放置以下檔案:

bash複製編輯redis-docker/

│
├── docker-compose.yml
└── redis.conf

Project structure


2. 撰寫 docker-compose.yml

redis-docker/ 資料夾中建立 docker-compose.yml,內容如下:

yaml複製編輯version: '3.8'

services:
  redis:
    image: redis:latest
    container_name: redis-server
    ports:
      - "6379:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf  # 掛載自訂設定檔
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]  # 指定使用自訂設定
    networks:
      - redis-network
    restart: unless-stopped

  redisinsight:
    image: redis/redisinsight:latest
    container_name: redisinsight
    ports:
      - "5540:5540"  # 預設UI介面埠
    networks:
      - redis-network
    depends_on:
      - redis
    restart: unless-stopped

networks:
  redis-network:
    driver: bridge

docker-compose-yml

說明

  • Redis:使用官方最新版映像,並設定使用我們自訂的 redis.conf
  • RedisInsight:是 Redis Labs 官方提供的管理介面工具,方便用圖形化方式查看、操作資料。
  • 網路:兩個服務共用同一個 Docker Bridge network,方便互通。

3. 撰寫 redis.conf

接著,在同一個資料夾中新增 redis.conf,內容如下:

conf複製編輯# 設定Redis啟用密碼認證
requirepass mypassword

# ACL - 定義使用者 (這裡設定一個default_user,擁有全部權限)
user default_user on >19920430 ~* +@all

說明

  • requirepass mypassword:啟用基本密碼驗證。
  • user default_user on >19920430 ~* +@all:設定一個叫 default_user 的使用者,密碼為 19920430,且擁有所有指令與資料存取權限。
❗ 注意:Redis 6以後正式支援 ACL (Access Control List) 功能,不只是單一密碼,而可以針對不同使用者設定不同權限!

4. 啟動服務

在專案資料夾內,打開 Terminal,執行以下指令來啟動容器:

bash複製編輯docker compose up -d

指令說明:

  • up:啟動容器
  • -d:在背景模式執行

啟動成功後,可以透過以下指令查看容器狀態:

bash複製編輯docker ps

你應該可以看到兩個正在運行的容器:

  • redis-server
  • redisinsight

5. 透過 RedisInsight 連接 Redis

步驟

  1. 打開瀏覽器,進入網址:
    👉 http://localhost:5540
  2. 在 RedisInsight 的 UI 中,點選 Add Redis Database
  3. 填入以下連線資訊:
    • Hostredis
    • Port6379
    • Passwordmypassword
  4. 點擊 Connect,即可開始使用 RedisInsight 來查看、操作 Redis 裡面的資料!

注意

因為 RedisInsight 和 Redis 是跑在同一個 Docker network (redis-network) 中,所以 Host 填 redis 這個服務名稱,而不是 localhost!

如果你要從自己的本機 Terminal 直接連線 Redis,也可以這樣做:

bash複製編輯redis-cli -h 127.0.0.1 -p 6379 -a mypassword

連線後,使用者可以執行指令,如:

bash複製編輯SET mykey "Hello, Redis!"
GET mykey


6. 小結

透過這個簡單的教學,我們學會了:

  • 如何使用 Docker Compose 同時部署 Redis 與 RedisInsight
  • 如何為 Redis 設定基本的安全性(密碼、使用者)
  • 如何透過 RedisInsight 進行視覺化管理

這樣的架構適合用在開發環境、測試環境,甚至是小型專案的正式環境。如果要更進一步強化安全性,可以加上 TLS 加密、設定防火牆或 IP 白名單等措施。