docker学习(dockerfile打jar包为镜像)
docker打包jar为docker镜像
1、使用Dockerfile打镜像
将spring boot应用打包成jar包放置在/app/applcation路径中
编写dockerfile文件,内容参考如下:
# Docker image for springboot file run
# VERSION 0.0.1
# Author: yanjl
# 基础镜像使用java
FROM s390x/adoptopenjdk:8u292-b10-jdk-openj9-0.26.0
# 作者
MAINTAINER yanjl <yanjlxue@outlook.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /app/application 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /app/application
# 将jar包添加到容器中并更名为hello.jar #前者为打包的文件 后者为修改后的自定义名字
ADD /app/application/hello.jar /app/application/hello.jar
# 运行jar包
RUN bash -c "touch /app/application/hello.jar"
# -Djava.security.egd=file:/dev/./urandom为指定随机数生成器,可加快启动
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/application/hello.jar"]
# 暴露端口
EXPOSE 8099
项目需要java环境,可以根据自己的操作系统选择合适的jdk,可以再dockerhub官方仓库查询对应的镜像,
挂载卷可以将容器内信息映射到宿主机中,方便查阅
构建镜像,命令最后有一个点,表示当前目录,-f为指定dockerfile,-t命名镜像
docker build -f Dockerfile -t hello:1001 .
查看当前镜像
docker images
启动容器,可以使用docker logs hello 查看日志输出,-p参数表示端口映射(宿主机端口:容器内端口,-d为指定镜像文件)
docker run -p 8099:8099 -d hello:1001 --name hello
使用docker ps -a查看当前容器运行状态,-a参数表示查看所有容器(包括已终止),不加则只会显示运行中容器
docker ps -a
若要删除镜像,需要先停止容器,再删除容器,再删除镜像即可
# 停止容器
docker stop 容器名(或id)
# 删除容器
docker rm 容器名(或id)
# 删除镜像
docker rmi 镜像名:版本号(或id)