使用Docker 在本地搭建 Redis 环境

4,190 阅读2分钟

日常工作中都有自己的主力开发机、为了搭一套环境方便日常开发,通常都会选择在本地安装一些列服务端软件如 mysql、nginx等。

久而久之本地便安装了很多服务端软件、升级和管理就变得特别麻烦。近期正好需要搭一个 redis 环境,于是开始着手通过 docker 镜像安装 逐步替换当前直接在host系统上直接安装服务端应用。

本文记录了通过 docker 搭建 redis 环境的整个过程。

redis

docker

安装 cli

➜:~ kongfutech$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz
➜:~ kongfutech$ tar xzf redis-5.0.5.tar.gz
➜:~ kongfutech$ cd redis-5.0.5
➜:~ kongfutech$ make

redis-5.0.5 目录下会出现服务端 redis-server 、客户端 redis-cli 后面可用它来与 docker 容器中的 redis 服务端交互。

安装镜像

1、查询镜像:

➜:~ kongfutech$ docker search redis

NAME                             DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
redis                            Redis is an open source key-value store that…   7004                [OK]
bitnami/redis                    Bitnami Redis Docker Image                      114                                     [OK]
sameersbn/redis                                                                  75                                      [OK]
grokzen/redis-cluster            Redis cluster 3.0, 3.2, 4.0 & 5.0               49
kubeguide/redis-master           redis-master with "Hello World!"                29
rediscommander/redis-commander   Alpine image for redis-commander - Redis man…   25                                      [OK]                     

2、拉取镜像:

➜:~ kongfutech$ docker pull redis

Using default tag: latest
latest: Pulling from library/redis
be8881be8156: Pull complete 
d6f5ea773ca3: Pull complete 
735cc65c0db4: Pull complete 
787dddf99946: Pull complete 
0733799a7c0a: Pull complete 
6d250f04811a: Pull complete 
Digest: sha256:858b1677143e9f8455821881115e276f6177221de1c663d0abef9b2fda02d065
Status: Downloaded newer image for redis:latest
➜:~ kongfutech$ /Users/kongfutech/Library/Containers/com.docker.docker/Data/
-bash: /Users/kongfutech/Library/Containers/com.docker.docker/Data/: is a directory
➜:~ kongfutech$ ls /Users/kongfutech/Library/Containers/com.docker.docker/Data/
backend.sock        tasks            vpnkit.pcap.sock
docker.sock        vms            vpnkit.port.sock
osxfs.sock        vpnkit.diag.sock
task.lock        vpnkit.eth.sock

3、查看一下是否成功:

➜:~ kongfutech$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               latest              4e8db158f18d        8 days ago          83.4MB
➜:~ kongfutech$ docker images redis
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               latest              4e8db158f18d        8 days ago          83.4MB

4、启动镜像:

➜:~ kongfutech$ docker run -p 6379:6379 -v $PWD/data:/data  -d redis:latest redis-server --appendonly yes
f2f6d7ba523b32dba90e08a077a47839c63b0d4da6e050637c1a6d02b51ae510

命令说明:
-p 6379:6379 : 将容器的6379端口映射到主机的6379端口
-v $PWD/data:/data : 将主机中当前目录下的data挂载到容器的 /data 目录
redis-server --appendonly yes : 在容器执行 redis-server 启动命令,并打开 redis 持久化配置

5、查看是否启动成功

➜:~ kongfutech$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
f2f6d7ba523b        redis:latest        "docker-entrypoint.s…"   10 minutes ago      Up 10 minutes       0.0.0.0:6379->6379/tcp   sharp_kepler

验证 redis 服务

通过 redis-cli 连接验证 部署在docker中的 redis

➜:~ kongfutech$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
127.0.0.1:6379> set spring springframework
OK
127.0.0.1:6379> get spring
"springframework"
127.0.0.1:6379> keys *
1) "spring"
2) "spring2"
127.0.0.1:6379> keys spring*
1) "spring"
2) "spring2"

总结

1、linux 或 mac 可以直接通过源码编译安装 redis 服务端和 redis-cli 客户端;windows可直接下载可执行安装包。 github.com/microsoftar…

2、通过官方 docker 镜像可在容器中直接部署 redis 服务端。应用和 redis-cli 客户端便可与 redis 服务端交互。同时使用 dockerfile 及其他配置文件就可将本地开发环境很好的管理起来。

参考