哈喽~大家好呀,到现在目前为止我们已经学习了4篇文章了,这篇呢我们就开始实战了。
一、创建Java应用
我们在 Spring 的官网下载配置(如下图所示,记得添加 web 与 sql),然后我们用 IDEA 来打开
二、 部署redis
我们这里要安装 redis,输入指令 docker pull redis,我们打开到 data (cd data)中,然后创建一个 redis (mkdir redis),然后打开 redis(cd redis),准备好配置文件(vi redis.conf),输入 :wq 退出并保存。
redis使用自定义配置文件启动(这里有个细节,记得要添加安全组)
docker run -v /data/redis/redis.conf:/etc/redis/redis.conf \ -v /data/redis/data:/data \ -d --name myredis \ -p 6379:6379 \ redis:latest redis-server /etc/redis/redis.conf
这时我们要使用一个工具——RedisDesktopManager,输入name、host、port、测试一下,ok,没问题。
三、redis设置密码访问
和我们上面一样,先配置文件(vi redis.conf),然后使用命令 requirepass abc123abc
格式:requirepass + 密码,输入 :wq 退出并保存
🎉 然后我们重启一下,输入重启指令
docker restart myredis
我们再来打开工具 RedisDesktopManager 重新测试一下,发现连不上了,没错这时我们需要密码了。重新 Connect to Redis Server,再次测试一下。
四、统计访问人数场景
🎄我们这里打开 IDEA,在 application.properties 配置 host 与 password,附上代码
spring.redis.host=139.198.175.74 spring.redis.password=abc123abc
🎄创建 CounterController.java 文件,写入代码
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-people"); return "有 【"+ increment +"】 人访问了这个页面"; } }
完成之后,在浏览器的地址栏输入 localhost:8080/hello,(hello 是 @GetMapping("/hello") 里面设置的地址),我们看看效果。
五、Dockerfile 构建任意应用镜像
我们之前运行 java,是怎样的呢?以 java 为例,
- SpringBoot 打包成可执行 jar
- 把jar包上传给服务
- 服务器运行 java -jar
也就是说我们在要安装环境在运行,如何我们在另一台主机运行,我们还要安装环境,非常麻烦。
所以我们有没有这样的一个东西,能让我们其他主机不用安装环境也能运行。
我们用 IDEA 在我们之前的项目里面新建个文件叫 Dockerfile,写入代码:
FROM openjdk:8-jdk-slim LABEL maintainer=leifengyang COPY target/*.jar /app.jar ENTRYPOINT ["java","-jar","/app.jar"]
🎉新建个文件夹,然后把 Dockerfile 与 jar 包上传。
🎉然后我们开始构建镜像
docker build -t java-demo:v1.0 .
🎉构建之后我们再启动镜像
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0
然后我们再地址栏输入 “主机号 : 8080/hello” ,我们所有人就都能访问了(记得设置一下安全锁)
六、应用分享与启动
如何分享镜像?
💎登录docker hub
docker login
💎给旧镜像起名
docker tag java-demo:v1.0 leifengyang/java-demo:v1.0
💎推送到 docker hub
docker push leifengyang/java-demo:v1.0
💎别的机器
docker pull leifengyang/java-demo:v1.0
💎别的机器运行
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0
💎启动应用容器
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0
好了,截止到这里我们的 Docker 基础部分已经全部讲完了,下一篇预告 2.1 Kubernetes-基础概念。