如何构建一个应用镜像,我们通常需要使用到Dockerfile,Dockerfile好比一个执行脚本,通过指令的形式,将所需要的环境等官方镜像进行构建形成一个新的镜像层。
成都创新互联公司专注骨干网络服务器租用10余年,服务更有保障!服务器租用,成都IDC机房托管 成都服务器租用,成都服务器托管,骨干网络带宽,享受低延迟,高速访问。灵活、实现低成本的共享或公网数据中心高速带宽的专属高性能服务器。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
至此,我们通过创建一个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仓库找到
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧