(三)docker:Dockerfile构建容器运行jar包

  1. 目录结构以及准备的文件
├── dockerfile
│   ├── Dockerfile
│   ├── application.properties
│   ├── demo.jar
│   └── jdk-17.0.9-linux-x64.tar.gz

2.Dockerfile内容

FROM ubuntu:latest
# JDK存放处
ENV JAVA_DIR=/home
# 拷贝本地jdk到容器home目录下
COPY ./jdk-17.0.9-linux-x64.tar.gz $JAVA_DIR/
# 拷贝本地的java jar包到home目录下
COPY ./demo.jar $JAVA_DIR/
# 拷贝本地的配置文件到home目录下
COPY ./application.properties $JAVA_DIR/
# 进入home目录,解压压缩包,重命名,授予执行权限
RUN cd $JAVA_DIR \ 
&& tar -xf ./jdk-17.0.9-linux-x64.tar.gz \ 
&& mv jdk-17.0.9+8 jdk17 \
&& chmod 775 $JAVA_DIR/demo.jar
# 指定java所在目录 在linux里是export
ENV JAVA_HOME=$JAVA_DIR/jdk17
# 把java的路径设置到path里
ENV PATH=$PATH:$JAVA_HOME/bin
# java jar包启动,指定配置文件,当数据库改变时,可以通过docker cp ./application.properties d74cfda839f6:/home/# application.properties将需要的配置文件拷贝到容器里
ENTRYPOINT ["java","-Dspring.config.location=/home/application.properties", "-jar", "/home/demo.jar"]

3.构建镜像

docker run --name appv1 -d app:v1

4.查看生成镜像

sixdog@sixiaodong jarExcute % docker images
REPOSITORY        TAG         IMAGE ID       CREATED         SIZE
app               v1          31ad2f4bba78   9 minutes ago   655MB

5.创建并运行容器

docker run --name app -p 8081:8081 -d app:v1

6.查看创建的容器

sixdog@sixiaodong jarExcute % docker ps -a                                           
CONTAINER ID   IMAGE                       COMMAND                   CREATED         STATUS                      PORTS                               NAMES
d74cfda839f6   app:v1                      "java -Dspring.confi…"   7 minutes ago   Up 7 minutes                0.0.0.0:8081->8081/tcp              app

7.启动画面确认
(三)docker:Dockerfile构建容器运行jar包_第1张图片

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