• 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

  • 相关阅读:
    数据结构与算法4—队列
    栈的应用——括号匹配
    迷宫求解
    python的socket编程
    数据结构与算法3—栈
    数据结构与算法2—链表
    数据结构与算法1—线性表
    增量解析
    ElementTree类
    节点序列化
  • 原文地址:https://www.cnblogs.com/zhangzhiping35/p/14710843.html
Copyright © 2020-2023  润新知