1. 建立本地對映資料夾
mkdir -p /docker/redis/data
(自定義位置,我選擇了上面的資料夾,對映資料夾一會要在redis命令中用到,如果改變請注意)
可選:給當前使用者加/docker資料夾的許可權。sudo chown -R xxxx /docker
2. 下載redis預設配置檔案
前往redis的GitHub地址 redis-github 下載redis.conf檔案
3. 設定密碼
開啟redis.conf檔案,搜尋 requirepass
開啟註釋,設定密碼
4. 讓其他機器可以連線
開啟redis.conf檔案,搜尋 bind
修改為bind 0.0.0.0 ::0
允許所有連線,如果有其他限制,自行修改
繼續搜尋protected-mode,改為no
關閉保護模式
4. 將redis.conf上傳到伺服器
上傳到/docker/redis
5. 拉取redis映象
docker pull redis
6. 啟動docker映象
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
解釋:來自ChatGPT
這條 docker run
命令用於啟動一個 Docker 容器,裡面執行著一個 Redis 伺服器。讓我們逐個解釋每個引數的意義:
-
--restart=always
: 這個引數設定容器的重啟策略為always
,意味著無論容器退出狀態如何,只要 Docker 守護程序執行,容器就會被自動重啟。 -
--log-opt max-size=100m
: 這個日誌選項設定容器日誌檔案的最大大小為 100MB。達到這個大小後,舊的日誌會被丟棄。 -
--log-opt max-file=2
: 這個日誌選項設定最多保留兩個日誌檔案。結合上一個選項,表示最多保留 200MB 的日誌資訊。 -
-p 6379:6379
: 將容器內的 6379 埠對映到宿主機的 6379 埠上,使得可以從宿主機訪問容器內執行的 Redis 服務。 -
--name redis
: 為容器設定一個名稱為redis
,這樣可以更容易地引用它。 -
-v /docker/redis/redis.conf:/etc/redis/redis.conf
: 將宿主機上的/docker/redis/redis.conf
檔案掛載到容器內的/etc/redis/redis.conf
。這樣可以讓容器使用外部的配置檔案來配置 Redis 伺服器。 -
-v /docker/redis/data:/data
: 將宿主機上的/docker/redis/data
目錄掛載到容器內的/data
目錄。這用於持久化 Redis 資料,確保容器重啟後資料不丟失。 -
-d
: 以守護程序模式執行容器,即在後臺執行。 -
redis
: 指定要執行的 Docker 映象,這裡是redis
映象。 -
redis-server /etc/redis/redis.conf
: 容器啟動後執行的命令,使用/etc/redis/redis.conf
配置檔案啟動 Redis 伺服器。 -
--appendonly yes
: 啟用 Redis 的 AOF (Append Only File) 持久化模式,即所有寫操作都會被記錄到 AOF 檔案,這樣在重啟時可以透過 AOF 檔案恢復資料。
透過這些引數,Docker 會啟動一個配置好的 Redis 伺服器容器,它將自動重啟、具有日誌管理、埠對映、使用外部配置和資料目錄,並以 AOF 模式執行。