Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringBoot 整合 Docker

SpringBoot 整合 Docker

作者头像
晚上没宵夜
发布于 2021-11-15 02:01:19
发布于 2021-11-15 02:01:19
53800
代码可运行
举报
运行总次数:0
代码可运行

最近备忘录新加的东西倒是挺多的,但到了新环境水土不服没动力去整理笔记

1. Demo Project

首先准备一个简单的项目,用来部署到 Docker 主机上,并且能验证该项目是否成功运行

1.1 接口准备

准备一个测试接口,用于校验 Docker 部署是否成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RestController
@RequestMapping("/")
public class HelloController {

    @GetMapping("/hello")
    public String helle() {
        return "Hello World";
    }
}

1.2 配置准备

在 application.yml 文件中添加 Docker 宿主机地址,方便统一管理(该功能需要安装依赖插件)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server:
  port: 8080

spring:
  application:
    name: docker-deploy-test

docker:
  host: http://xxx.xxx.xxx.xxx:2375

2. Docker 开启远程连接

Docker 也是 Client/Serve 架构(dameon守护进程),其默认只能本地访问, 所以得设置成可外网访问我们才能部署项目到 Docker 上

1.1 修改配置文件

在 Docker 宿主机上编辑配置,添加下面一行配置(意思是任何地址都能访问 2375 端口)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$vim /usr/lib/systemd/system/docker.service
 
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock

1.2 刷新配置、重启

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$systemctl daemon-reload
$systemctl restart docker

1.3 认证登录

直接开放 2357 端口,那么任何人都可以往 Docker 宿主机推送东西,笔者当初就被推送了挖矿的镜像,主机卡死登不上去,后来只能无奈重装系统镜像。Docker支持使用 SSL 证书登录,如果在外网环境请务必使用 SSL 登录(笔者记录了 OpenSSL 的笔记 ---- 用于认证,还没来得及整理)

3. IDEA 安装 Docker 插件

笔者 2019 版的 IDEA 已经默认集成了 Docker 插件,不需要再次安装。只需把远程主机地址和端口配上让 IDEA 连接 ,最后验证是否连接上远程 Docker 主机即可

这里新建一个 Docker,填上主机地址会自动连接,显示 Connection successful 则表示 IDEA 连上宿主机了

4. Maven 添加 Docker 插件

上一步的 IDEA 插件可以构建镜像并部署了,还能管理 Docker。但笔者是 maven 插件 和 IDEA 插件并用,能够方便构建程序和部署

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--  docker 插件  -->
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.0.0</version>

    <!--  绑定 docker:build 到 maven 的 package 生命周期  -->
    <executions>
        <execution>
            <id>docker-build-image</id>
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
    </executions>

    <!--  插件的配置  -->
    <configuration>
        <!--  构建的镜像的名字 :标签  -->
        <imageName>${project.artifactId}:${project.version}</imageName>
        <!--  存放dockerfile的路径  -->
        <dockerDirectory>${project.basedir}</dockerDirectory>
        <!--  docker Host 地址,用插件在 initialize 阶段从 application.yml 解析  -->
        <dockerHost>${docker.host}</dockerHost>
        <!--  SSL 认证证书地址,若开启 SSL 登录  -->
        <!--  <dockerCertPath></dockerCertPath>  -->
        <resources>
            <resource>
                <!--  使用什么资源来构建镜像(就是jar包),以及将镜像推送到容器的那个目录下  -->
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

5. 编写Dockerfile

创建 Dockerfile 文件,填入下面的内容,然后将其放入到项目的根目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM openjdk:8-jdk-alpine

MAINTAINER [author] [Howl@email.com]

ARG JAR_FILE=/target/*.jar

COPY ${JAR_FILE} app.jar

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app.jar"]

6. 打包项目

在 Maven 插件中绑定了 Package 与 Docker:build 的执行过程,即把项目打包成 jar 之后会自动执行 Dockr:build 来构建镜像并发布到远程 Docker 宿主机上(若项目较大,那么等待镜像推送到 Docker 宿主机上的时间会较长)

7. 创建容器

在 IDEA 的插件中可以管理 Docker,点开右下角 services 里面可以看到连接上的 Docker 里有刚才构建的镜像,然后我们可以选择这个镜像右键来创建容器

在弹出框里面填入要创建的容器的名字,以及容器映射的端口,最后点击 Run,等待容器启动即可。启动完成后可以在 IDEA 的插件里看到新建的容器,点击可以查看容器的详情

8. 校验部署

使用宿主机的 IP 地址或域名来访问刚才发布的测试接口

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringBoot微服务项目打包成Docker镜像详解
linux主机ip加2375端口号/version,如果出来了东西,表示配置成功
大忽悠爱学习
2021/11/19
5K0
一键部署 Spring Boot 到远程 Docker 容器,就是这么秀!
不知道各位小伙伴在生产环境都是怎么部署 Spring Boot 的,打成 jar 直接一键运行?打成 war 扔到 Tomcat 容器中运行?不过据松哥了解,容器化部署应该是目前的主流方案。
江南一点雨
2019/09/03
1.9K0
一键部署 Spring Boot 到远程 Docker 容器,就是这么秀!
IDEA集成Docker
第一步:配置Docker的远程访问 1、修改/lib/systemd/system/docker.service sudo vim /lib/systemd/system/docker.service 开启tcp 2375 端口 将 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 注释替换为 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H
韩旭051
2021/04/14
1K0
IDEA集成Docker
IDEA连接Docker服务器并部署代码到docker
一、准备工作 centos7、IDEA2018.2、Docker17.12.1-ce、Win10、VMware 在Win10上安装虚拟机VMware并安装centos7系统 在centos7系统中安装docker 二、开始 1、开启远程访问centos7并进行Docker的配置开放2375端口
用户9347382
2022/01/10
5.6K0
IDEA连接Docker服务器并部署代码到docker
【实战原创】SpringBoot应用docker化并发布到远程服务器
首先编辑docker的宿主机文件/lib/systemd/system/docker.service
JAVA葵花宝典
2019/11/15
1.3K0
【实战原创】SpringBoot应用docker化并发布到远程服务器
idea连接docker实现一键部署
一、修改配置文件,打开2375端口 [root@microservice ~]# vim /usr/lib/systemd/system/docker.service 在ExecStart=/usr/bin/dockerd-current 后面加上-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \ 重新加载配置文件和启动: systemctl daemon-reload systemctl start docker 二、idea安装docker插件(D
HUC思梦
2020/09/03
1.2K0
idea连接docker实现一键部署
springBoot制作docker镜像
文章目录 1. SpringBoot制作docker镜像 1.1. 开启2375端口 1.2. 修改docker配置文件 1.3. 配置环境变量 1.4. Dockerfile 1.5. 配置maven插件 1.6. 运行 1.7. 源码 1.8. 参考文章 SpringBoot制作docker镜像 开启2375端口 修改docker配置文件 vim /usr/lib/systemd/system/docker.service 在ExecStart=/usr/bin/dockerd配置加上如下内容 -H
爱撒谎的男孩
2019/12/31
3K0
IDEA直连服务器,进行项目Docker部署,实现一键启动
在项目中使用docker后,通过docker的方式来启动系统,需要经过编译、打jar包、打镜像、启动等阶段。在各种自动化工具的出现,对打包、部署等工作带来了便利,一般都会选择git+Jenkins方式进行自动化部署。在面对本地开发调试阶段,如果过分的依赖自动化工具,会显得并不是那么的方便,比如:频繁的代码调整修改,却要进行代码的git提交、登录Jenkins进行部署,这样的频繁操作,甚至会让你发疯的。
xcbeyond
2020/04/01
4K0
IDEA直连服务器,进行项目Docker部署,实现一键启动
idea部署springboot工程到服务器Docker
上一篇《手动部署springboot工程到Docker》仿佛依然不太便捷,因为需要手动上传jar包,作为懒癌最晚期的码奴,怎么能忍受,再进阶,可以考虑一键部署到服务器。BUT,请注意,建议只在开发测试环境或者内网环境使用,因为这样你的docker会暴露在互联网上,存在严重风险
小尘哥
2021/03/03
1.2K0
idea部署springboot工程到服务器Docker
SpringCloud 实战|SpringCloud 实现docker 镜像部署-提升项目的生产力
在父级项目的pom->properties 添加如下配置 docker.host:docker安装的主机ip docker.registry.repository:上面搭建的本地仓库主机ip+端口号 docker.maven.plugin.version:插件版本
AI码师
2022/09/19
5640
使用 Docker 部署 Spring Boot 项目,带劲!!
Docker 一次构建、处处运行及快速启停的特性,在微服务架构中有着举足轻重的地位,具体的概念性的东西就不介绍了,不懂的点击这里阅读 Docker 基础教程。
Java技术栈
2020/12/08
4.3K0
使用 Docker 部署 Spring Boot 项目,带劲!!
[玩转腾讯云]Docker——使用Git来实现Jenkins发布、测试项目
4.1、修改docker服务配置:`vim /usr/lib/systemd/system/docker.service`进入,找到参数:`ExecStart=/usr/bin/dockerd`
eyqx
2021/04/19
8060
[玩转腾讯云]Docker——使用Git来实现Jenkins发布、测试项目
在IDEA中使用Docker部署SpringBoot项目
Demooo/springboot-demo-docker at master · cbeann/Demooo · GitHub
CBeann
2023/12/25
3840
在IDEA中使用Docker部署SpringBoot项目
使用docker部署spring cloud项目详细步骤
(1)到Oracle官网下载好 jdk-8u181-linux-x64.tar.gz 备用 (2)卸载系统自带的java
lyb-geek
2019/05/14
2.4K0
使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
一个用于构建和推送Docker镜像的Maven插件。
程序员鹏磊
2018/01/16
1.4K0
使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
使用Maven插件构建Docker镜像
如果遇到镜像下载不下来的情况,需要修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值,然后重启docker服务:
macrozheng
2019/07/22
1.5K0
使用Maven插件构建Docker镜像
提升10倍生产力:IDEA远程一键部署SpringBoot到Docker
IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?
Java团长
2019/08/05
6640
提升10倍生产力:IDEA远程一键部署SpringBoot到Docker
springboot版本helloworld发布到k8s示例
操作步骤 windows上编写代码 远程linux的docker引擎把代码打成镜像 编写k8s的yaml文件 应用yaml文件,启动服务 前置任务 安装好k8s集群,可参考另一篇文章:Centos7安
kinnylee
2020/10/15
7750
springboot版本helloworld发布到k8s示例
springboot实战之docker部署
进行阅读后,再来阅读本文。本文属于工具使用教程类,主要是讲述如何使用。相关的理论知识上边的文章都有详细论述,这边就不再罗列理论,下边就直接进入实战
lyb-geek
2022/03/10
2.4K0
springboot实战之docker部署
SpringBoot Docker 部署
SpringBoot 可以直接部署在linux物理环境里面,也可以把springboot工程打包成镜像,以容器的方式来运行。在微服务框架下,springboot工程动辄几十上百,如果一个个都手动部署事毕会耗费很多的精力,linux环境配置也是很麻烦的,并且容易出错。如果我们把springboot打包成镜像,以docker作为工程的运行载体,就可以很容易保证运行环境的一致性。并且可以用Kuberates 来管理镜像,通过kubernates也可以编排镜像,这就为我们一键部署微服务提供了安全高效的方法,所以springboot Docker部署势在必行,本章节我们来学习一下 Springboot的 Docker部署。 这里共分了12个步骤,其实最关键的就4步。 0. 新建springboot-docker web工程 1. 指定端口信息 [可选] 2. 修改pom.xml [关键] 3. 创建restful api 4. 启动测试接口,测试成功 5. 打包jar 6. 移动配置文件到 dockerfile 目录 [可选] 7. 移动jar包 到 dockerfile 目录 8. 目前 打包成镜像的数据源已经配备完毕 9. 编写Dockerfile文件 [关键] 10. 上传到Linux环境[Linux 环境下已经安装 Docker 并且服务已经启动] 11. 打包镜像 [关键] 12. 启动镜像 [关键] 13. 测试接口
Freedom123
2024/03/29
5260
推荐阅读
相关推荐
SpringBoot微服务项目打包成Docker镜像详解
更多 >
LV.1
这个人很懒,什么都没有留下~
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验