在服务器上创建redis容器的挂载目录如下:
[root@centos dockerdata]# tree . └── redis ├── data │ ├── appendonly.aof │ └── dump.rdb └── redis.conf
vim redis.conf
# 开启AOF模式 appendonly yes # 设置密码 requirepass redis
redis使用自定义配置文件启动
docker run -v /root/dockerdata/redis/redis.conf:/etc/redis/redis.conf \ -v /root/dockerdata/redis/data:/data \ -d --name myredis \ -p 6379:6379 \ redis:latest redis-server /etc/redis/redis.conf
打开idea
创建spring项目,依赖选择Spring Web和Spring Data Redis
创建controller/CounterController.java
package com.lt.javademo.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class CounterController { @Autowired StringRedisTemplate redisTemplate; @GetMapping("/hello") public String count(){ Long increment = redisTemplate.opsForValue().increment("count"); return "有" + increment + "人访问了这个页面"; } }
在application.properties文件中
# 服务器ip spring.redis.host=10.201.10.166 # redis密码 spring.redis.password=redis
直接运行,访问http://localhost:8080/hello可以显示
使用maven打包成jar
创建Dockerfile文件
FROM openjdk:8-jdk-slim LABEL maintainer=lt COPY target/*.jar /app.jar ENTRYPOINT ["java","-jar","/app.jar"]
将target目录以及Dockerfile文件放入服务器目录下
打包镜像
docker build -t java-demo:v1.0 .
查看镜像
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE java-demo v1.0 1a0b4260fec3 About a minute ago 323MB redis latest 5d89766432d0 3 days ago 105MB openjdk 8-jdk-slim 99b31c7569d0 4 days ago 296MB
运行
docker run -d -p 8080:8080 --name myjava-demo java-demo:v1.0
上传dockerhub仓库,就可以在别的机器拉取
# 登录docker hub docker login #给旧镜像起名 docker tag java-demo:v1.0 lt/java-demo:v1.0 # 推送到docker hub docker push lt/java-demo:v1.0 # 别的机器 docker pull lt/java-demo:v1.0 # 别的机器运行 docker run -d -p 8080:8080 --name myjava-demo java-demo:v1.0