• Docker容器部署springboot项目


    1.实现原理

    先利用jar包生成一个镜像文件,然后docker启动即可

    2.具体步骤

    2.1 准备工作:

    linux服务器上已安装docker
    docker -v
    linux服务器上已安装jdk
    java -version
    linux服务器开放要执行的项目端口

    2.1 实操

    先把项目打包成jar包,上传到linux服务器(可利用ftp)
    在linux服务器上该jar包所在目录,新建文件,名为Dockerfile,内容如下

    FROM java:8
    VOLUME /temp
    ADD swapping.jar swapping.jar
    RUN bash -c 'touch /swapping.jar'
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xmx1024m","-Xms1024m","/swapping.jar"]
    

    文件解释

    FROM java:8
    
    指定要构建的spring boot服务镜像的基础源镜像是java,版本是8;如果本地没有java:8的镜像,就会从dockerHub下载。一般首次下载,以后就不会下载了。
    VOLUME /temp
    
    VOLUME 指向了容器内的/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
    
    VOLUME 命令只能指定挂载点,也就是说在此处,只能指定容器内的目录,不能指定宿主机上对应的目录,也就是说是宿主机上自动生成的目录 去挂载了  容器内的指定的/tmp目录!!!
    如果想要指定宿主机的目录去进行挂载,只能通过run命令中的 -v参数进行 宿主机的指定目录 挂载  容器内的指定目录
    ADD swapping.jar swapping.jar
    
    其实就是 ADD 【rz上传上来的文件】 【要被拷贝到即将要构建的docker容器中的文件】
    RUN bash -c 'touch /swapping.jar'
    
    实际执行复制操作的命令
    复制代码
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xmx1024m","-Xms1024m","/swapping.jar"]
    
    ENTRYPOINT 配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。
    
    -Djava.security.egd=file:/dev/./urandom
    添加java.security.egd的系统属性指向/dev/urandom,JVM上的随机数与熵池策略
    

    在jar包所在目录执行命令创建docker镜像,注意有.
    docker build -t swapping .
    运行该镜像
    docker run --name swapping -itd --net=host swapping
    查看启动日志
    docker logs -f swapping
    成功,访问服务测试

    重启服务
    docker restart swapping
    停止服务
    docker stop swapping
    移除容器
    docker rm -f swapping
    列出所有镜像
    docker images
    删除镜像
    docker rmi 9d3ee8a877d3

    3.完结

    撒[发发]

  • 相关阅读:
    Talk the Talk
    2.1 使用eclipse4.4 搭建 maven简单结构项目。
    [LeetCode] Best Time to Buy and Sell Stock
    hdu4605Magic Ball Game 树状数组
    phoenixframe自己主动化平台在Linux环境下运行用例的说明
    数据存储值归档Archive
    BZOJ 1040 ZJOI2008 骑士 树形DP
    HDOJ 5357 Easy Sequence DP
    Autodesk 招聘Revit二次开发咨询顾问,与Autodesk全球团队紧密合作,提高职业生涯的好机会
    Codeforces Round #263 (Div. 1) A B C
  • 原文地址:https://www.cnblogs.com/jnnleo/p/15215906.html
Copyright © 2020-2023  润新知