哈喽~大家好呀,到现在目前为止我们已经学习了4篇文章了,这篇呢我们就开始实战了。

 🥇个人主页:个人主页​​​​​             

🥈 系列专栏:【云原生系列】

🥉与这篇相关的文章:            

1.2 Docker基本概念(含 Docker 安装)【云原生】1.2 Docker基本概念(含 Docker 安装)_一个名叫追的程序猿的博客-CSDN博客
1.3 Docker 常用命令实战(上)【云原生】1.3 Docker 常用命令实战(上)_一个名叫追的程序猿的博客-CSDN博客
1.4 Docker 常用命令实战(下)【云原生】1.4 Docker 常用命令实战(下)_程序猿追的博客-CSDN博客

目录

一、创建Java应用

二、 部署redis

三、redis设置密码访问

四、统计访问人数场景

五、Dockerfile 构建任意应用镜像

六、应用分享与启动


一、创建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-基础概念。

(求关注)持续更新中……

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐