从本章开始我们在Docker下进行spring boot操作redis的实战,先从最简单的redis单机版开始吧;
原文地址:http://blog.csdn.net/boling_cavalry/article/details/78991422
实战环境
- 本次实战的环境是Ubuntu16,安装的Docker版本是17.03.2-ce;
- 创建文件夹/usr/local/work/share,后面会用来做共享文件夹;
- 本次实战将创建两个容器,如下表格所示: | 容器名 | ip | 功能| | :-------- | :----| :----| | springbootredis_redis_1| 172.18.0.2 | 单机版redis | | springbootredis_java_1| 172.18.0.3 | 运行springboot工程的环境 |
启动容器
通过docker-compose.yml的方式启动上述两个容器,docker-compose.yml的内容如下:
代码语言:javascript复制redis:
image: redis:3
ports:
- "6379:6379"
java:
image: bolingcavalry/springbootrun:0.0.1
links:
- redis:redishost
volumes:
- /usr/local/work/share:/usr/Downloads
ports:
- "8080:8080"
tty: true
在此文件所在目录执行命令docker-compose up -d,即可启动两个容器,再执行docker ps可以看到容器信息如下:
spring boot工程
准备一个spring boot工程来读写redis,本章我们的目标是快速体验,所以代码的细节先不讨论,jar包我已准备好,以下两个地址均可下载:
- http://download.csdn.net/download/boling_cavalry/10192604
- https://github.com/zq2599/demofiles/blob/master/redistempletedemo-0.0.1-SNAPSHOT.jar
jar包下载下来后,放入本机的/usr/local/work/share目录,这个目录和容器的/usr/Downloads是映射关系,所以我们进入容器后可以直接访问这个文件;
部署jar包
- 执行以下命令进入运行springboot容器:
docker exec -it springbootredis_java_1 /bin/bash
- 进入/usr/Downloads目录,可以看到文件:redistempletedemo-0.0.1-SNAPSHOT.jar
- 执行以下命令启动容器:
java -jar redistempletedemo-0.0.1-SNAPSHOT.jar
- 启动成功,信息如下:
验证
我的电脑地址是192.168.119.155,所以在浏览器上输入:http://192.168.119.155:8080/set/name/666666999999
以上地址会在redis中设置一个key/value,key是name,value是666666999999,页码提示操作成功,如下图:
输入这个地址可以查看redis中key为"name"的内容:http://192.168.119.155:8080/get/name
页面上展示出redis的内容,如下图:
我们再登上redis容器去检查一下,执行以下命令进入redis容器:
代码语言:javascript复制docker exec -it springbootredis_redis_1 /bin/bash
执行以下命令进入redis控制台:
代码语言:javascript复制redis-cli
在控制台执行get name即可看到name对应的值,如下所示:
代码语言:javascript复制root@rabbitmq:~# docker exec -it springbootredis_redis_1 /bin/bash
root@6e7f4f77eef9:/data# redis-cli
127.0.0.1:6379> get name
"666666999999"
127.0.0.1:6379>
至此,我们在Docker下简单的体验了springboot工程对redis的读写,接下来的实战,我们将尝试在Docker下搭建redis集群并添加哨兵;