日常工作中都有自己的主力开发机、为了搭一套环境方便日常开发,通常都会选择在本地安装一些列服务端软件如 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 redisNAME DESCRIPTION STARS OFFICIAL AUTOMATEDredis 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 49kubeguide/redis-master redis-master with "Hello World!" 29rediscommander/redis-commander Alpine image for redis-commander - Redis man… 25 [OK] 复制代码
2、拉取镜像:
➜:~ kongfutech$ docker pull redisUsing default tag: latestlatest: Pulling from library/redisbe8881be8156: Pull complete d6f5ea773ca3: Pull complete 735cc65c0db4: Pull complete 787dddf99946: Pull complete 0733799a7c0a: Pull complete 6d250f04811a: Pull complete Digest: sha256:858b1677143e9f8455821881115e276f6177221de1c663d0abef9b2fda02d065Status: 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.sockdocker.sock vms vpnkit.port.sockosxfs.sock vpnkit.diag.socktask.lock vpnkit.eth.sock复制代码
3、查看一下是否成功:
➜:~ kongfutech$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEredis latest 4e8db158f18d 8 days ago 83.4MB➜:~ kongfutech$ docker images redisREPOSITORY TAG IMAGE ID CREATED SIZEredis latest 4e8db158f18d 8 days ago 83.4MB复制代码
4、启动镜像:
➜:~ kongfutech$ docker run -p 6379:6379 -v $PWD/data:/data -d redis:latest redis-server --appendonly yesf2f6d7ba523b32dba90e08a077a47839c63b0d4da6e050637c1a6d02b51ae510复制代码
命令说明:-p 6379:6379 : 将容器的6379端口映射到主机的6379端口-v $PWD/data:/data : 将主机中当前目录下的data挂载到容器的 /data 目录redis-server --appendonly yes : 在容器执行 redis-server 启动命令,并打开 redis 持久化配置
5、查看是否启动成功
➜:~ kongfutech$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESf2f6d7ba523b 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 6379127.0.0.1:6379> keys *(empty list or set)127.0.0.1:6379> pingPONG127.0.0.1:6379>127.0.0.1:6379> set spring springframeworkOK127.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可直接下载可执行安装包。
2、通过官方 docker 镜像可在容器中直接部署 redis 服务端。应用和 redis-cli 客户端便可与 redis 服务端交互。同时使用 dockerfile 及其他配置文件就可将本地开发环境很好的管理起来。