美文网首页
Docker将jar包制作为镜像,在Docker环境运行

Docker将jar包制作为镜像,在Docker环境运行

作者: 墨迹嘿嘿 | 来源:发表于2021-12-09 15:41 被阅读0次

    首先我们将一个简单的Springboot项目打包成jar

    然后将项目上传至Linux系统

    系统提前装好docker环境

    测试docker版本:

    docker -v
    
    image

    首先我们将准备的xxx.jar,Dockerfile拷贝到我们的CentOS 7机器上

    下图idea 进行打好的包

    image

    我们拷贝的路径为:

    /usr/local/dev
    
    image

    编写的Dockerfile文件为:

    FROM openjdk:8-jdk-alpine
    VOLUME /tmp
    ADD spring-boot-docker.jar app.jar
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    

    上面命令的相关解释:

    1. 从docker仓库获取openjdk作为我们项目的容器
    2. VOLUME指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/usr/local/dev目录下创建了一个临时文件,并连接到容器的/tmp
    3. 项目的dspring-boot-docker.jar作为app.jar添加到容器。
    4. ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向/dev/urandom 作为 Entropy Source

    构建Docker镜像

    我们在/usr/local/dev目录下,执行Docker的命令来构建镜像。

    docker build -t ludashi/spring-boot-docker-t:latest .
    

    这个命令就是使用Dockerbuild命令来构建镜像,并给镜像起了一个名字ludashi/spring-boot-docker-t其TAGlatest在当前文件夹下。

    image

    我们使用docker images来查看所有的镜像

    docker images
    
    image

    我们发现镜像列表里面有我们生成的镜像ludashi/spring-boot-docker-t

    运行镜像

    镜像构建成功之后,就可以运行容器了:

    docker run -d --name spring-boot-docker -p 8899:8899 ludashi/spring-boot-docker-t
    
    image

    这个表示docker容器在停止或服务器开机之后会自动重新启动 --restart=always 这块可不执行

    docker run -d --restart=always --name spring-boot-docker -p 8899:8899 ludashi/spring-boot-docker-t
    

    如果docker run 的时候没有加 --restart=always ,然后已经运行的docker容器怎么设置自动重启? 执行下面命令:

     docker update --restart=always spring-boot-docker
    

    然后docker ps 看看你的容器有没有在运行即可

    docker ps
    
    image

    docker logs --tail 300 -f spring-boot-docker-t 查看启动日志

    docker logs --tail  300 -f  spring-boot-docker
    
    image

    访问浏览器:

    image

    OK!

    相关文章

      网友评论

          本文标题:Docker将jar包制作为镜像,在Docker环境运行

          本文链接:https://www.haomeiwen.com/subject/kzpffrtx.html