【Docker】实战

Docker项目中应用

如何构建一个应用镜像,我们通常需要使用到Dockerfile,Dockerfile好比一个执行脚本,通过指令的形式,将所需要的环境等官方镜像进行构建形成一个新的镜像层。

【Docker】实战_第1张图片

1.指令

FROM :  基础镜像,从这里开始构建,一搬会从在这选择操作系统的类型

MAINTAINER  : 创建者

RUN : 构建镜像时需要运行的程序或者应用

ADD: 添加文件或者压缩包(tar会自动解压)

WORKDIR : 镜像挂载操作

VOLUME : 镜像挂载卷目录

EXPOST : 暴露的端口

CMD : 指定这个容器启动的时候要运行的命令,只有一个生效	

ENTRYPOINT :指定这个容器启动的时候要运行的命令,可存在多个命令

COPY : 好比ADD,将文件拷贝进镜像中

ENV : 镜像构建时设置的环境变量

2.测试

首先编写一个SpringBoot应用程序,Redis进行存储数据,通过MVC控制层访问/hello来统计访问人数,如下是代码结构

controller.java

@RestController
public class CounterController {

    @Autowired
    RedisTemplate redisTemplate;

    @GetMapping("/hello")
    public String count(){
        Long increment = redisTemplate.opsForValue().increment("count-people");
        return "有:【"+increment+"】人访问了这个页面";
    }
}

application.properties

server.port=8090
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=qwe123

编写Dockerfile

备注:由于我使用的是外部服务器的Redis,所以容器内部就无需使用redis,如无需使用外部Redis,那么容器内需引入Redis镜像,通过ADD方式加入

FROM openjdk:8-jdk-slim
LABEL maintainer=josen

COPY target/*.jar /app.jar

ENTRYPOINT ["java","-jar","/app.jar"]

maven打包后的压缩包和dockerfile打包上传至服务器

-target
	--dockerTest.jar
--Dockerfile

运行命令

docker build -t java-demo:v1.0 

#docker build -f dockerfile文件路径  -t 镜像名:[tag]版本号

构建成功

Successfully built 29f15645bc0b
Successfully tagged java-demo:v1.0

运行镜像,创建容器

docker run  -d --name java-demo java-demo:v1.0 -p 88:8090

访问接口地址,服务器ip:端口(8090)/hello

【Docker】实战_第2张图片

至此,我们通过创建一个java应用并上传至服务器,服务器无需配置jdk环境,也可以完成java应用的部署和运行。同时,我们还可以将我们创建好的镜像,上传至docker hub镜像仓库中,供别人拉取并使用。

//设置镜像标签,后续镜像名为josne/java-demo ,版本号Tag 为v1.0

docker tag java-demo:v1.0   josne/java-demo:v1.0     

上传docker hub镜像仓库

docker push josne/java-demo:v1.0       

上传成功后,就可以在自己的docker仓库找到

【Docker】实战_第3张图片

你可能感兴趣的:(Docker,docker,java,容器)