日常工作中都有自己的主力开发机、为了搭一套环境方便日常开发,通常都会选择在本地安装一些列服务端软件如 mysql、nginx等。
久而久之本地便安装了很多服务端软件、升级和管理就变得特别麻烦。近期正好需要搭一个 redis 环境,于是开始着手通过 docker 镜像安装 逐步替换当前直接在host系统上直接安装服务端应用。
本文记录了通过 docker 搭建 redis 环境的整个过程。
安装 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 及其他配置文件就可将本地开发环境很好的管理起来。