zoukankan      html  css  js  c++  java
  • docker部署springBoot项目

    Dockerfile 文件

    写法1(实际用过)

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

     写法2

    FROM java:8
    VOLUME /tmp
    ADD springboot-1.0-SNAPSHOT.jar boot.jar
    EXPOSE 8080
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/boot.jar"]

    FROM:表示基础镜像,即运行环境

    VOLUME : /tmp创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录

    ADD:拷贝文件并且重命名(ADD springboot-1.0-SNAPSHOT.jar boot.jar 将应用jar包复制到/boot.jar)

    EXPOSE:并不是真正的发布端口,这个只是容器部署人员与建立image的人员之间的交流,即建立image的人员告诉容器布署人员容器应该映射哪个端口给外界

    ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入java -jar xxxx.jar,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT

    1.在centos7 ~ 创建一个文件夹docker 里面放置 上面的Dockerfile 和 springBoot 打包的项目 customerservice-0.0.1-SNAPSHOT.jar

    执行命令

    docker build -t customersystem .
    -t代表要构建的镜像的tag
    
    .代表当前目录,也就是Dockerfile所在的目录。
    执行docker build命令,docker就会根据Dockerfile里你定义好的命令进行构建新的镜像。
    
    然后就可以看到在下载各种依赖的maven、各种jar,构建完毕后,启动项目。
    

      

     

    在该docker文件夹下使用 指令:

    docker run -d -p 9008:9008 --restart=always --name customersystem customersystem

    docker run --rm -d --name 容器名称 -p 8080:8080 镜像名称
    其中-d表示后台运行容器,这也就自然地解决的Spring Boot不支持后台运行应用程序的问题。 -p 8080:8080表示将容器内部的8080端口映射到宿主机器的8080端口,这样就可以通过宿主机器直接访问应 用。 –name 给容器取一个容易记住的名字方便日后管理。 --rm 在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据
    运行该springBoot项目,可以看到构建完毕的景象docker了
    查询当前运行的容器
    [root@sl docker]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    f1d7587c800e        cdaa62cb062c        "java -Djava.secur..."   2 hours ago         Up 2 hours          0.0.0.0:8088->8088/tcp   customersystem

    最后访问浏览器

    在docker开始部署springBoot项目(方法二)
    把整个工程代码拷到centos服务器上
    
    [root@iz2zeh5mjwg5u2vl2fawchz ~]# ls /usr/local/gs-spring-boot-docker-master
    pom.xml  src  target
    在/usr/local/gs-spring-boot-docker-master目录下运行命令:
    
    mvn package docker:build
    success
    
     ---> 8b562204cb2c
    Removing intermediate container 262ca4a9b39d
    Step 5/6 : ENV JAVA_OPTS ""
     ---> Running in 19a713bcc1fa
     ---> 772752e84c58
    Removing intermediate container 19a713bcc1fa
    Step 6/6 : ENTRYPOINT sh -c java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
     ---> Running in e43743f6b521
     ---> 831237777bc5
    Removing intermediate container e43743f6b521
    Successfully built 831237777bc5
    [INFO] Built springio/gs-spring-boot-docker-master
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 32.046s
    [INFO] Finished at: Thu Jun 21 10:29:30 CST 2018
    [INFO] Final Memory: 34M/83M
    [INFO] ------------------------------------------------------------------------
    看到build success说明该项目的镜像创建成功,查看一下
    
    docker images
    运行该镜像
    
    docker run -p 8010:8010 -t springio/gs-spring-boot-docker-master
    

     .net版

    docker ps -a 查询所有容器
    docker stop fe 停止某个容器
    docker rm fe 删除某个容器
    docker rmi usersystem
    cd /home/publish/usersystem
    ls 查看目录
    rm -rf usersystem
    rm -rf usersystem.zip
    ls 查看是否删除(只保留一个Dockerfile就可以了)
    rz 上传文件
    ls 查看目录
    unzip usersystem.zip
    ls 查看目录usersystem 文件夹
    docker build -f /home/publish/usersystem/Dockerfile -t usersystem .
    docker run -d -p 8608:8608 --restart=always --name usersystem usersystem

  • 相关阅读:
    还在使用golang 的map 做Json编码么?
    Golang 性能测试(2) 性能分析
    golang 性能测试 (1) 基准性能测试
    消息队列 NSQ 源码学习笔记 (五)
    消息队列 NSQ 源码学习笔记 (四)
    消息队列 NSQ 源码学习笔记 (三)
    消息队列 NSQ 源码学习笔记 (二)
    消息队列 NSQ 源码学习笔记 (一)
    你不知道的空格
    Supervisor 使用和进阶4 (Event 的使用)
  • 原文地址:https://www.cnblogs.com/zhangzhiping35/p/14710843.html
Copyright © 2011-2022 走看看