准备 SpringBoot 工程

  1. 新建 SpringBoot 项目,默认的端口是 8080 ,新建 Controller 和 Mapping
@RestController
public class HelloController {
@GetMapping("hello")
public String hello() {
return "hello world!";
}
}

注意,需要在 pom 中添加 spring-boot-maven-plugin 插件,否则运行 jar 包时会提示:没有主清单属性

    <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

启动项目,访问 http://localhost:8080/hello 测试

  1. 在项目目录添加 Dockerfile 文件
FROM openjdk:8-jre
# ./target/demo-0.0.1-SNAPSHOT.jar 为编译后的 jar 包位置
# jar 包的名称要与自己配置的相同,格式为:项目名称-版本号.jar
COPY ./target/demo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar"]
CMD ["app.jar"]
  1. Docker 远程连接配置

    演示使用的 Docker 宿主机是 CentOS 7,修改配置并重启 Docker 服务
vim /lib/systemd/system/docker.service

将 ExecStar 这行配置修改为下面这行

ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

重启服务

systemctl daemon-reload
systemctl restart docker

可以通过访问 API 进行测试,IP 需要修改为宿主机对应的 IP,端口设置的为 2375,访问成功会显示 Docker Engine 的相关版本信息

http://192.168.43.161:2375/version

如果是部署在公网或者生产环境,需要配置安全访问,可以参考:Docker开启远程安全访问

IDEA 配置

  1. IDEA 安装 Docker 插件

  2. 配置 IDEA Docker 连接

    在设置中可以找到 Docker,点击加号可以添加新的 Docker 连接,输入名称、Engine API URL,然后就会提示:Connection successful,即连接成功

  3. 点击 Run/Debug Configurations



    输入名称、添加 Dockerfile(刚刚添加的那个)、容器名称、映射端口号

    Before launch选择Maven 并输入命令:clean package -U -DskipTests,这个命令在每次编译 Dockerfile 之前都会运行

  4. 点击运行就会自动打 jar 包,并在宿主机上构建镜像,运行容器

  5. 可以通过 Docker 宿主机进行测试访问,这里演示使用的 192.168.43.161 需要替换成自己 Docker 宿主机的 IP

http://192.168.43.161:8080/hello

参考资料

Docker - 远程连接

IDEA的Docker插件实战(Dockerfile篇)

使用 IDEA 配合 Dockerfile 部署 SpringBoot 工程的更多相关文章

  1. 利用Dockerfile部署SpringBoot项目

    利用Dockerfile部署SpringBoot项目 1.创建一个SpringBooot项目并且打成jar包 2.在Linux中创建一个文件夹,来做docker测试 [root@izwz90lvzs7 ...

  2. jenkins配合dockerfile部署项目

    前言 本节需要对jenkinsfile有点了解,对dockerfile有点了解,对shell有点了解,对docker有点了解 执行流程 jenkins拉取代码仓库中的代码 jenkins执行jenki ...

  3. 使用dockerfile部署springboot应用

    本章简单展示如何最短时间 把springboot应用打包成镜像并创建成容器. 准备工作: 1.安装docker ,保证执行docker version没有问题 2.拉下来一个jdk镜像 docker ...

  4. 部署springboot工程到linux上及遇到的坑

    一.步骤 1.将工程打成jar包 IDEA中点击file-project structure,如下图: 选择Artifacts-JAR-From modules,选择入口类Main Class,如下图 ...

  5. Linux上的常用命令(含在Linux上部署springboot工程所要用到的命令)

    日常使用命令: 开关机:(shutdown命令的时间参数似乎是一定要的) shutdown -h now ——h的意思就是服务停掉之后立即关系,shutdown命令的时间参数是必须要的,now相当于是 ...

  6. 打包SpringBoot工程并部署

    使用工具:Eclipse Linux下JDK版本:jdk-7u79-linux-x64.tar.gz 一.打包成jar并部署 步骤如下: 首先上pom.xml: <project xmlns=& ...

  7. SpringBoot工程+热部署进行远程调试

    本文转载自:https://blog.csdn.net/qq_31868349/article/details/78553901 SpringBoot工程+热部署进行远程调试 本地端添加配置 在pom ...

  8. SpringBoot工程热部署

    SpringBoot工程热部署 1.在pom文件中添加热部署依赖 <!-- 热部署配置 --> <dependency> <groupId>org.springfr ...

  9. 详解docker部署SpringBoot及如何替换jar包

    关于docker的安装和使用,可以看看之前这两篇文章.Docker从安装部署到Hello World和Docker容器的使用和连接.这篇文章主要介绍如何在docker上部署springboot项目.关 ...

随机推荐

  1. Aria2 任意文件写入

    访问aria2,发现服务已启动并且返回404页面 打开http://binux.github.io/yaaw/demo/#打开yaaw,点击配置按钮,填入运行aria2的目标域名:http://you ...

  2. 手写Pascal解释器(三)

    目录 一.part7 抽象语法树和具体语法树(解析树) 代码实现 二.part8 一.part7 资料来源:https://ruslanspivak.com/lsbasi-part7/ 看作者博客的标 ...

  3. Android 键盘属性

    键盘定义:通过Keyboard说明是一个软键盘定义文件,Row元素说明这是一行按键的定义,Key元素说明这是一个按键的定义.Key元素通过一些属性来定义每个按键,下面是一些常用的属性介绍: Codes ...

  4. GPB重磅!浙大李兰娟院士团队修饰多组学研究揭示炎症反应新机制

    炎症 (inflammation) 是机体对致炎因子的损伤所发生的一种以防御反应为主的基本病理过程.翻译后修饰(PTMs)在调节多种炎症信号通路中起着重要作用,如磷酸化(phosphorylation ...

  5. BurpSuite 2020.5安装教程

    Burpsuite2020.5安装教程 Burpsuite2020.5需要在Java11的环境下才可正常运行. 所以首先安装Java11: 安装Java11 Java SE的安装非常简单,直接下一步, ...

  6. 防火墙和SElinux简单配置

    1.查看防火墙状态 # firewall-cmd --state          &    #systemctl status  firewalld.service 2.停止与开启firew ...

  7. postman之断言

    1 (状态码断言)和(返回内容断言)

  8. Manage sshd Service on CentOS

    Check the current sshd status: service sshd status Start sshd service: service sshd start Set sshd a ...

  9. CMMI相关图书

    Integrating CMMI and Agile Development: Case Studies and Proven Techniques for Faster Performance Im ...

  10. Python语言系列-02-基础数据类型

    格式化输出 #!/usr/bin/env python3 # author:Alnk(李成果) # 百分号% 格式化输出 name = input('姓名:') age = input('年龄:') ...