新手三天入门docker第三天:使用docker打包并发布程序

202 阅读2分钟

假设目前已经写了一个hello-world小应用,并且已经打成jar包亟待发布使用。
程序被打成可执行的jar包,终端输入java -jar xx.jar即可运行应用。但是这种运行的前提是需要拥有java运行环境。
此时使用docker,任何应用都是镜像,解决跨语言下的程序运行问题。

  1. 编写Dockerfile。
FROM unitfinance/jdk17-sbt-scala:latest  # 程序的运行环境
LABEL maintainer=xiaoli  # 作者
  
COPY target/*.jar /app.jar  # 将程序复制到容器
  
ENTRYPOINT ["java","-jar","demo-0.0.1-SNAPSHOT.jar"] # 运行命令
  1. 将jar包上传到docker容器。注意-r是递归复制目录。

testDocker.png 3. 在docker容器中构建镜像docker build -t java-demo:v1.0 -f Dockerfile .。构建成功后可以使用docker images查看镜像。 docker_build.png 镜像有752mb,是因为携带了jdk17的基础环境。 5. docker run -d -p 8080:8080 java-demo:v1.0。启动镜像。使用docker ps可以查看是否启动成功。启动后就可以正常运行应用。可以使用docker logs查看程序的运行日志。

在后续的流程中,可以将镜像上传到docker hub,只需要从dockerhub中拉取镜像,不同的服务器就可以实现镜像的共享,使用docker run,就可以跨语言的运行应用。
其实大多数人谈论 Docker 时说的是 Docker Engine,这只是一个构建和运行的容器。

在运行容器前需要编写Docker File,通过 dockerFile 生成镜像,然后才能运行 Docker 容器。

Docker File 定义了运行镜像(image)所需的所有内容,包括操作系统和软件安装位置。一般情况下都不需要从头开始编写 Docker File,在 Docker Hub 中有编写好的镜像,可以基于此修改。

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 22 天,点击查看活动详情