寫在前面
首先確保本機已經(jīng)安裝好Docker寡壮,可以使用Dockr version
來查看本機安裝的docker版本妥畏。
本人測試的基本為個人Mac Book锈玉,使用本機上的Docker安裝Redis 進行一些涉及Redis的程序的開發(fā)和調(diào)試沐兰。
安裝過程
安裝Redis
通過docker search redis
和docker pull redis
下載redis鏡像
# 通過關(guān)鍵詞搜索可用的redis鏡像
docker search redis
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
redis Redis is an open source key-value store that… 8297 [OK]
bitnami/redis Bitnami Redis Docker Image 148 [OK]
sameersbn/redis 80 [OK]
grokzen/redis-cluster Redis cluster 3.0, 3.2, 4.0, 5.0, 6.0 68
rediscommander/redis-commander Alpine image for redis-commander - Redis man… 41 [OK]
kubeguide/redis-master redis-master with "Hello World!" 31
redislabs/redis Clustered in-memory database engine compatib… 25
redislabs/redisearch Redis With the RedisSearch module pre-loaded… 23
oliver006/redis_exporter Prometheus Exporter for Redis Metrics. Supp… 22
arm32v7/redis Redis is an open source key-value store that… 21
bitnami/redis-sentinel Bitnami Docker Image for Redis Sentinel 14 [OK]
webhippie/redis Docker images for Redis 12 [OK]
redislabs/redisgraph A graph database module for Redis 11 [OK]
s7anley/redis-sentinel-docker Redis Sentinel 10 [OK]
arm64v8/redis Redis is an open source key-value store that… 9
insready/redis-stat Docker image for the real-time Redis monitor… 9 [OK]
redislabs/redisinsight RedisInsight - The GUI for Redis 7
redislabs/redismod An automated build of redismod - latest Redi… 7 [OK]
centos/redis-32-centos7 Redis in-memory data structure store, used a… 5
circleci/redis CircleCI images for Redis 4 [OK]
clearlinux/redis Redis key-value data structure server with t… 2
runnable/redis-stunnel stunnel to redis provided by linking contain… 1 [OK]
tiredofit/redis Redis Server w/ Zabbix monitoring and S6 Ove… 1 [OK]
wodby/redis Redis container image with orchestration 1 [OK]
xetamus/redis-resource forked redis-resource 0 [OK]
# 下載最新版本的Redis鏡像
docker pull redis
新增掛在配置文件夾
因為 redis 默認配置你會發(fā)現(xiàn)只能夠本地連接,不能進行遠程訪問贺归,使用 Redis Desktop Manager連接都會報錯淆两,因此需要手動掛載 redis 配置文件/
新建data
和conf
兩個文件夾,位置隨意拂酣。例如:
pwd
/Users/louxiujun
mkdir -p docker/redis/conf
mkdir -p docker/redis/data
新增Redis配置文件
cd docker/redis/conf
touch redis.conf
vim redis.conf
內(nèi)容如下:
#bind 127.0.0.1
protected-mode no
appendonly yes
requirepass 123456
- 將bind 127.0.0.1注釋掉秋冰,保證可以從遠程訪問到該Redis,不單單是從本地
- appendonly:開啟數(shù)據(jù)持久化到磁盤婶熬,由于開啟了磁盤映射剑勾,數(shù)據(jù)最終將落到
/Users/louxiujun/docker/redis/data
目錄下 - requirepass:設(shè)置訪問密碼為123456
創(chuàng)建redis容器并啟動
docker run --name myredis -p 6379:6379 -v /Users/louxiujun/docker/redis/data:/data -v /Users/louxiujun/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
-
docker run
表示運行的意思 -
--name myredis
表示運行容器的名字叫myredis
-
-p 6379:6379
表示將服務(wù)器的6379(冒號前的6379)端口映射到docker的6379(冒號后的6379)端口,這樣就可以通過服務(wù)器的端口訪問到docker容器的端口了 - -d 表示以后臺服務(wù)的形式運行redis
-
-v /Users/louxiujun/docker/redis/data:/data
表示將服務(wù)器上的/Users/louxiujun/docker/redis/data
映射為docker容器上的/data
赵颅,這樣/data
中產(chǎn)生的數(shù)據(jù)就可以持久化到本地的目錄下了 -
-v /Users/louxiujun/docker/redis/conf/redis.conf:/etc/redis/redis.conf
表示將本地/Users/louxiujun/docker/redis/conf/redis.conf
映射為docker容器上的/etc/redis/redis.conf
虽另,這樣再配合指令末尾的redis redis-server /etc/redis/redis.conf
實現(xiàn)讓docker容器運行時使用本地配置的Redis配置文件的功能了。 -
redis redis-server /etc/redis/redis.conf
表示運行redis服務(wù)器程序性含,并且指定運行時的配置文件
啟動測試
通過docker ps
指令查看啟動狀態(tài)洲赵,是否成功.
docker ps -a |grep myredis
4be98db9c9e4 redis "docker-entrypoint.s…" 22 minutes ago Up 22 minutes 0.0.0.0:6379->6379/tcp myredis
可以看到Redis實例容器myredis
的運行狀態(tài)為“UP 22 minutes”表示容器當(dāng)前正處于運行中,且已經(jīng)持續(xù)運行了22分鐘了商蕴。
容器內(nèi)部連接進行測試
執(zhí)行docker exec -it myredis redis-cli
命令,進入終端芝发。通過auth password
指令進行密碼校驗绪商。
docker exec -it myredis redis-cli
127.0.0.1:6379> auth
(error) ERR wrong number of arguments for 'auth' command
127.0.0.1:6379> set a 1
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> get a
"1"
127.0.0.1:6379>
客戶端
這里直接提供一個破解版的鏈接下載安裝就可以了:https://pan.baidu.com/s/1tpnvkE9R63U9VVMfw5xodQ 密碼:zd7y.
填寫name,隨意填寫辅鲸,不一定非要為myredis格郁,Address使用默認的127.0.0.1,端口使用默認的6379独悴,Auth處填寫校驗密碼123456例书。
配置完成之后點擊“TestConnection”按鈕測試連接,顯示如圖所示的彈窗則表示連接成功刻炒。
可以看到决采,分庫0中有我們先前測試時set的key a,在db0的右上角提供一個一個?按鈕坟奥,表示新增一個key树瞭,選擇key a ,在右側(cè)的面板中提供了“Delete”的刪除按鈕爱谁。
關(guān)于Redis Desktop Manager就簡單介紹到這里晒喷,使用的時候簡單摸索一下都會使用的,上手成本比較低访敌,這里點到為止凉敲。
附錄
這里附錄一些常用的docker指令僅供參考。
# 搜索鏡像
docker search <image name>
# 拉取鏡像
docker pull <image name>
# 查看本地鏡像
docker images
# 查看已經(jīng)創(chuàng)建的容器
docker ps -a
# 查看已經(jīng)啟動的容器
docker ps -s
# 運行一個容器實例
docker run <container name>
# 停止指定容器
docker stop <container tag>
# 刪除指定容器
docker rm <container tag>