SpringBoot项目部署(Docker)——通过Dockerfile将打包好的jar包创建成镜像 & 在IDEA中配置docker,一键启动容器 & 用swagger进行测试

这篇具有很好参考价值的文章主要介绍了SpringBoot项目部署(Docker)——通过Dockerfile将打包好的jar包创建成镜像 & 在IDEA中配置docker,一键启动容器 & 用swagger进行测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引出


1.Dockerfile命令初识,CMD…;
2.idea配置docker,图形化界面;
3.编写Dockerfile把jar包制作成镜像,并用idea一键生成和启动容器;
4.在Linux中测试,在宿主机用swagger进行测试;文章来源地址https://www.toymoban.com/news/detail-751666.html

SpringBoot项目部署(jar包)

SpringBoot项目部署(jar包)——项目用maven打包成jar包 & windows + Linux平台运行 & Linux安装java & 遇到的问题

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

Dockefile初识

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

Docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。Docker利用容器(Container)来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。Docker的主要概念包括镜像和容器。

其中,Images(镜像)是一个只读模板,含创建Docker容器的说明,它与操作系统的安装光盘有点像。Containers(容器)是镜像的运行实例,镜像与容器的关系类比面向对象中的类和对象。Docker镜像通过Dockefile文件构建,文件中包含指定的基础镜像、运行命令等

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

FROM:指定创建镜像的基础镜像

MAINTAINER:Dockerfile作者信息,一般写的是联系方式

RUN:运行Linux系统的命令使用

CMD:指定容器启动执行的命令;启动容器中的服务

LABEL:指定生成镜像的源数据标签

EXPOSE:指定镜像容器监听端口号;发布服务使用

ENV:使用环境变量

ADD:对压缩文件进行解压缩;将数据移动到指定的目录

COPY:复制宿主机数据到镜像内部使用

WORKDIR:切换到镜像容器中的指定目录中

VOLUME:挂载数据卷到镜像容器中

USER:指定运行容器的用户

ARG:指定构建运行时参数

ONBUILD:创建镜像,作为其他镜像的基础镜像运行操作指令

ENTRYPOINT:指定运行容器启动过程执行命令,覆盖CMD参数

idea配置docker

在Linux中配置docker remote api

配置docker.service 让linux开放Docker Remote API。

查询配置文件位置

systemctl show —property=FragmentPath docker

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

[root@localhost ~]# systemctl show --property=FragmentPath docker
FragmentPath=/usr/lib/systemd/system/docker.service
[root@localhost ~]# cat /usr/lib/systemd/system/docker.service

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

使用vim编辑此文件

[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
 ExecStart=/usr/bin/dockerd-current -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 \

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

修改语句

ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
Environment=DOCKER_HTTP_HOST_COMPAT=1
Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
ExecStart=/usr/bin/dockerd-current -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 \
          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
          --default-runtime=docker-runc \
          --exec-opt native.cgroupdriver=systemd \
          --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
          --init-path=/usr/libexec/docker/docker-init-current \
          --seccomp-profile=/etc/docker/seccomp.json \
          $OPTIONS \
          $DOCKER_STORAGE_OPTIONS \
          $DOCKER_NETWORK_OPTIONS \
          $ADD_REGISTRY \
          $BLOCK_REGISTRY \
          $INSECURE_REGISTRY \
          $REGISTRIES
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
Restart=on-abnormal
KillMode=process
[Install]
WantedBy=multi-user.target

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

重载配置文件

[root@localhost ~]# systemctl daemon-reload

重启docker

[root@localhost ~]# systemctl  restart docker

测试2375端口

[root@localhost ~]# netstat -nplt|grep 2375
tcp6       0      0 :::2375                 :::*                    LISTEN      30524/dockerd

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

linux开放2375端口

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

[root@localhost ~]# firewall-cmd --zone=public --list-ports
8000/tcp 445/tcp 8848/tcp 8080/tcp 
[root@localhost ~]# firewall-cmd --zone=public --add-port=2375/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload 
success
[root@localhost ~]# firewall-cmd --zone=public --list-ports
8000/tcp 445/tcp 8848/tcp 8080/tcp 2375/tcp

测试配置

curl localhost:2375/info

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

配置idea docker插件

1.打开settings—>docker

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

docker下点击加号

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

2.配置docker插件

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

3.在Services中会出现Docker选项。

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

4.选中Docker图标,鼠标左键双击会显示容器中的内容。

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

部署项目Springboot整合Dockerfile

准备项目

package com.tianju.jpa.controller;

import com.tianju.jpa.entity.Car;
import com.tianju.jpa.service.ICarService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@Api(tags = "查询所有汽车的api接口类")
@RestController
@RequestMapping("/api/car")
public class CarController {

    @Autowired
    private ICarService carService;

    @ApiOperation("findAll查询所有车的测试")
    @GetMapping("/findAll")
    public List<Car> findAll(){
        List<Car> all = carService.findAll();
        System.out.println(all);
        return all;
    }
}

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

打包成jar包

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

创建Dockerfile文件

#使用java环境,anapsix/alpine-java:latest java环境的镜像
FROM anapsix/alpine-java:latest
# 项目的端口,内部服务端口
EXPOSE 9089
# 切换到容器内部的 /workdir目录
WORKDIR /workdir

# 添加要运行的jar文件
COPY target/spring-boot-jpa-1.0-SNAPSHOT.jar /workdir/JpaApp.jar

# 容器启动后运行的命令
ENTRYPOINT ["java","-jar","/workdir/JpaApp.jar"]

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

参数设置

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

设置 host与docker容器绑定的端口号

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

镜像名,容器名

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

运行创建镜像和容器

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

镜像创建成功

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

Deploying 'springboot-jpa Dockerfile: DockerFile'��
Building image��
Preparing build context archive��
[==================================================>]86/86 files
Done

Sending build context to Docker daemon��
[==================================================>] 50.11MB
Done

Step 1/5 : FROM anapsix/alpine-java:latest
 ---> c45785c254c5
Step 2/5 : EXPOSE 9089
 ---> Running in 339c0fb340d8
 ---> f68047af49d2
Removing intermediate container 339c0fb340d8
Step 3/5 : WORKDIR /workdir
 ---> 5e761fdb7189
Removing intermediate container 304cf8219b25
Step 4/5 : COPY target/spring-boot-jpa-1.0-SNAPSHOT.jar /workdir/JpaApp.jar
 ---> 4df14839f1d1
Removing intermediate container df30a130b405
Step 5/5 : ENTRYPOINT java -jar /workdir/JpaApp.jar
 ---> Running in 96797fd1ee7a
 ---> 2f339789e889
Removing intermediate container 96797fd1ee7a
Successfully built 2f339789e889
Creating container��
Container Id: a773c3ea278c6a56666d3a8253fd471c36bd8c4abf430a617cfdbb395eda0725
Container name: 'springboot-jpa'
Starting container 'springboot-jpa'
'springboot-jpa Dockerfile: DockerFile' has been deployed successfully.

容器运行成功

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

端口启动成功

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

进行测试

linux服务器测试(docker容器装在此服务器) : curl url

 curl 192.168.111.130:9089/api/car/findAll

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar

从外部访问容器。

http://192.168.111.130:9089/doc.htm

springboot dockerfile,SpringBoot,Operation and Maintenance,spring boot,docker,jar


总结

1.Dockerfile命令初识,CMD…;
2.idea配置docker,图形化界面;
3.编写Dockerfile把jar包制作成镜像,并用idea一键生成和启动容器;
4.在Linux中测试,在宿主机用swagger进行测试;

到了这里,关于SpringBoot项目部署(Docker)——通过Dockerfile将打包好的jar包创建成镜像 & 在IDEA中配置docker,一键启动容器 & 用swagger进行测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Dockerfile中编译、打包、部署spring boot项目

            Dockerfile是自动构建docker镜像的配置文件,将镜像构建过程通过指令的方式定义在Dockerfile中。配合docker build命令行可以实现自动化的Docker镜像的构建。         我们在学习一门语言或文档语法的时候,最快的学习方式就是看别人是怎么写的。这里这个“「别人

    2024年02月09日
    浏览(32)
  • 前端项目配置 Dockerfile 打包后镜像部署无法访问

    构建镜像 启动镜像容器 命令行访问: 浏览器访问: 该网页无法正常运作localhost 未发送任何数据。 ERR_EMPTY_RESPONSE 知识点: localhost:3001: 仅允许本地主机(即 Docker 容器内部)访问。 0.0.0.0:3001: 允许任何主机(包括容器外部的主机)通过该地址访问服务。

    2024年01月18日
    浏览(25)
  • 手把手从安装本地虚拟机,基于docker,部署springboot+vue项目(若依框架前后端分离版本演示),基于openjdk的dockerfile

    部署环境提供vm16,和centos7,其中把镜像改成.iso文件就可以了 阿里云链接: https://www.alipan.com/s/BTnpjuHWtEp 为什么用阿里云,不限速啊,秉持着开源白嫖的精神 新建虚拟机 选择镜像 创建用户 设置虚拟机存存放位置 默认下一步 自定义硬件 选了扩大一下内存,扩不扩无所谓 检查

    2024年01月16日
    浏览(51)
  • Centos7通过nginx+tomcat部署Vue+SpringBoot项目(超详细步骤,从nginx+tomcat安装到Vue+SpringBoot打包配置+nginx.conf)

    目录 一丶前言 二、安装nginx 1.准备nginx 2.服务器上传nginx 3.解压nginx  4.安装相关依赖库 5.编译nginx 6.启动nginx 7.访问nginx  8.安装成系统服务 三、安装Tomcat 1.安装JDK(如果安装并配置环境变量了可以略过) 2.准备Tomcat 3.服务器上传tomcat 4.解压tomcat  5.启动tomcat 6.访问tomcat 7.设置

    2024年02月05日
    浏览(47)
  • Dockerfile部署SpringBoot项目

    文章目录 利用Dockerfile部署SpringBoot项目 1、创建一个SpringBooot项目并且打成jar包 2、在Linux中创建一个文件夹,来做docker测试 3、将jar包上传到Linux中 4、编写Dockerfile文件 5、制作镜像 6、启动容器 7、查看容器启动日志 8、访问接口 1、创建一个SpringBooot项目并且打成jar包 2、在L

    2024年02月11日
    浏览(25)
  • dockerfile的使用,使用dockerfile部署springboot项目

    Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。 官网:https://docs.docker.com/engine/reference/builder/ 1:每条保留字指令都 必须为大写字母 且后面要跟随至少一个参数 2:指令按照从上到下,顺序执行 3:#表示注释 4:每条指令都会创建

    2024年02月05日
    浏览(25)
  • 数据库课程设计-学生选课管理系统(实训报告+答辩ppt+源码+sql文件+打包好的程序)springboot项目-javaweb

    作者:ChenZhen 博客地址:https://www.chenzhen.space/ 版权:本文为博主 ChenZhen 的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。 如果对你有帮助,请给一个小小的star⭐ 源码加vx : ChenZhen_7 (实训报告+答辩ppt+源码+sql文件+打包好的程序 无套路 免费获取! 不放

    2024年02月11日
    浏览(54)
  • 【go语言开发】go项目打包成Docker镜像,包括Dockerfile命令介绍、goctl工具生成

    本文主要介绍如何将go项目打包成镜像,首先介绍Dockerfile常用命令介绍,然后介绍使用工具goctl用于生成Dockerfile,还可以根据需求自定义指令内容,最后讲解如何将go-blog项目打包成镜像,以及如何运行等 参考文档: docker日常使用,编写dockerfile等 dockerfile编写 开发完项目之后

    2024年01月20日
    浏览(33)
  • dockerfile避坑笔记(VMWare下使用Ubuntu在Ubuntu20.04基础镜像下docker打包多个go项目)

    docker是一种方便跨平台迁移应用的程序,通过docker可以实现在同一类操作系统中,如Ubuntu和RedHat两个linux操作系统中,实现程序的跨平台部署。比如我在Ubuntu中打包了一个go项目的docker镜像(镜像为二进制文件,相当于windows中的exe文件),这个镜像可以直接在另一台Ubuntu上运

    2024年02月05日
    浏览(49)
  • Docker DockerFile部署java jar项目包,以及Mysql,Redis

    Docker 运行环境要求系统为 64 位、 Linux 系统内核版本为  3.8 以上 1.1 搭建gcc环境 (gcc是编程语言译器) yum -y install gcc yum -y install gcc-c++ 1.2 安装需要的软件包 yum install -y yum-utils 1.3 装镜像仓库 因为docker的服务器是在国外, 所以有时候从仓库中下载镜像的时候会连接被拒绝或者连

    2024年02月05日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包