Docker安裝Redis並使用Another Redis Desktop Manager連線

2022-09-13 06:19:40

Redis簡單介紹

Redis全稱是Remote DIctionary Service,即遠端字典服務。Redis 是一個使用C語言編寫的、開源的(遵守 BSD 協定)、高效能的、支援網路、可基於記憶體亦可持久化的紀錄檔型、Key-Value的NoSQL資料庫。

檢視可用的 Redis 版本

存取DokcerHub中的Redis映象庫地址:https://hub.docker.com/_/redis?tab=tags

可以通過 Sort by 檢視其他版本的 Redis,預設是最新版本(redis:latest):https://hub.docker.com/_/redis/tags?page=1

 

 

此外,我們還可以用 docker search redis 命令來檢視可用版本:

docker search redis

輸出如下:

 

拉取最新版的Redis映象

這裡我們拉取官方的最新版本的映象:

docker pull redis:latest

檢視本地安裝的映象

使用以下命令來檢視redis映象是否成功拉取到本地:

docker images

設定Docker中的Redis容器執行外網連線

首先Docker執行的每個容器都是隔離的,Redis預設不允許外部連線,因此想要部署在Docker容器內的應用連線上Redis,需要修改Redis預設設定,這裡我們以組態檔執行redis即可。

1、下載redis.conf檔案

首先建立掛載目錄:

sudo mkdir redis

redis.conf是Redis的核心組態檔,預設docker執行的redis是不存在組態檔的,這裡可以先從官網下載:

wget http://download.redis.io/redis-stable/redis.conf

2、設定redis.conf檔案許可權

sudo chown -R $USER redis.conf

-R或-recursive:遞迴處理,將指定目錄下的所有檔案及子目錄一併處理
chown [-R] [使用者名稱稱:組名稱] [檔案或目錄]

3、修改預設設定資訊

vi redis.conf
i 開始編輯
編輯完成後esc+:wq儲存修改
  • bind 127.0.0.1 -::1  #這行要註釋掉,解除本地連線限制
  • protected-mode no  #預設yes,如果設定為yes,則只允許在本機的迴環連線,其他機器無法連線。
  • daemonize no  #預設no 為不守護行程模式,docker部署不需要改為yes,docker run -d本身就是後臺啟動,不然會衝突
  • requirepass 123456  #設定密碼
  • appendonly yes  #持久化

建立並執行一個Redis容器和設定連結密碼

Redis映象拉取成功以後,我們可以使用以下命令來執行建立一個名為redis-test的redis容器:

docker run --name redis-test -p 6379:6379 -v /docker-data/redis/redis.conf:/etc/redis/redis.conf -v /docker-data/redis:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456

引數說明:

  •  --name redis-test:容器名稱。
  • -p 6379:6379:對映容器服務的 6379 埠到宿主機的 6379 埠。外部可以直接通過宿主機ip:6379 存取到 Redis 的服務。
  • -v /docker-data/redis/redis.conf:/etc/redis/redis.conf : 將主機中組態檔掛載到容器中
  • -v /docker-data/redis:/data : 將主機中data掛載到容器的/redis
  • -d redis redis-server /etc/redis/redis.conf:表示後臺啟動redis,以組態檔啟動redis,載入容器內的conf檔案。
  • redis-server /etc/redis/redis.conf : 容器中以組態檔方式啟動redis
  • redis-server --appendonly yes : 在容器執行redis-server啟動命令,並開啟redis持久化設定
  • redis-server --requirepass 123456 :redis連線密碼設定  

驗證Redis是否安裝成功

最後我們可以通過 docker ps 命令檢視容器的執行資訊:

docker ps

接著我們通過 redis-cli 連線測試使用 redis 服務。

docker exec -it redis-test /bin/bash
redis-cli
# 密碼登入
auth 123456

Another Redis Desktop Manager介紹:

  Redis DeskTop Manager自從進入了0.9.9版本就開始付費使用或者貢獻程式碼獲得免費使用期限。這時候,Another Redis DeskTop Manager作為一款基於nodejs開發的免費的Redis視覺化管理工具,可以執行在Windows、Linux、Mac平臺,而且是開源免費應用,就很推薦使用了。

gitee原始碼地址:https://gitee.com/qishibo/AnotherRedisDesktopManager

window .exe安裝包下載地址:https://gitee.com/qishibo/AnotherRedisDesktopManager/releases

Redis Client On Error: Error: connect ETIMEDOUT xxx.xxx.xxx:6379 Config right?

由於上面我已經對redis.conf組態檔進行了允許外網連線設定的修改,報這個錯誤我猜測是因為伺服器沒有設定6379的開發埠,所以需要到伺服器後端管理中新增6379埠設定。

Another Redis Desktop Manager測試連線:

 

參考文章:

Docker安裝Redis並組態檔啟動