zoukankan      html  css  js  c++  java
  • Docker部署SpringBoot项目

    1.准备一个SpringBoot项目

    2.安装Docker

    Docker运行在CentOS 7上,要求操作系统为64位,内核版本为3.10及以上。
    确认本机已经安装了满足要求的Linux内核。使用命令uname -r来检查内核版本信息。

    [root@localhost ~]# uname -r
    3.10.0-957.el7.x86_64

    安装Docker

    使用命令yum install -y docker安装Docker,“-y”表示不询问,使用默认配置进行安装。

     

    启动Docker服务,并设置为开机自启动

    #启动
    systemctl start docker.service

    #开启自启动 systemctl enable docker.service

    #查看docker版本
    docker version

     3.配置DockerFile文件

         新建文件夹并创建对应文件

    cd /home
    
    mkdir DockerDeploy

    cd DockerDeploy

    touch Dockerfile #插入如下内容


     

    FROM java:8
    
    VOLUME /tmp
    
    ADD my-blog-4.0.0-SNAPSHOT.jar app.jar
    
    RUN bash -c "touch /app.jar"
    
    EXPOSE 8080
    
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

    Remark:

    FROM指令指定一个已经存在的镜像,告诉Docker后续的指令都是在这个基础上进行的。例如:FROM java:8表示使用 Jdk1.8 环境为基础镜像进行构建镜像。

    VOLUME ,VOLUME 指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录

    ADD ,拷贝文件并且重命名

    ENTRYPOINT,为了缩短Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为ENTRYPOINT

    4.上传jar包(上传步骤一中准备好的jar包)

     5.构建镜像(镜像名需要小写)

    Remark:第一次构建会耗时比较久

    # 构建镜像
    docker build -t blog .

    6.检查镜像

    docker images

    7.构建容器并运行

    docker run -d --name=myblog -p 8080:8080 blog

    #查看容器
    docker ps

    #查看日志
    docker logs -f id

    解释说明

    run: 容器启动命令

    --name boot-docker 自定义容器命名

    -d 程序后台启动

    -v /opt/jar/boot-docker/logs:/log 应用日志 数据卷的方式存储

    -p 8000:8000 用主机8000端口映射容器端口

    boot-docker 镜像名称

    8.访问检测正常

     9.打tag,推送到私人仓库,下次直接拉取使用

  • 相关阅读:
    [CodeForces]Codeforces Round #429 (Div. 2) ABC(待补)
    About Me
    2018-06-14
    Codeforces Codeforces Round #484 (Div. 2) E. Billiard
    Codeforces Codeforces Round #484 (Div. 2) D. Shark
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes
    Codeforces Avito Code Challenge 2018 D. Bookshelves
    Codeforces Round #485 (Div. 2) D. Fair
    Codeforces Round #485 (Div. 2) F. AND Graph
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/12572890.html
Copyright © 2011-2022 走看看