使用 Docker Compose 快速部署 Redis 與 RedisInsight 視覺化管理工具
在現代應用開發中,Redis 已成為不可或缺的記憶體型資料儲存系統。本文將手把手教你,如何透過 Docker Compose 快速部署一個帶有基本安全性設定(密碼與使用者權限)的 Redis 服務,並使用 RedisInsight 來做可視化管理!
目錄
- 專案結構概覽
- 撰寫
docker-compose.yml
- 設定
redis.conf
- 啟動服務
- 透過 RedisInsight 連接 Redis
- 小結
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
步驟
- 打開瀏覽器,進入網址:
👉 http://localhost:5540 - 在 RedisInsight 的 UI 中,點選 Add Redis Database。
- 填入以下連線資訊:
- Host:
redis
- Port:
6379
- Password:
mypassword
- Host:
- 點擊 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 白名單等措施。