一:基础准备

1.首先在linux服务器安装Docker环境,具体安装步骤及Docker使用参考官网或网络资料(这里重点是快速部署项目到Docker环境)

2.配置Docker远程连接端口

1.vim /usr/lib/systemd/system/docker.service
2.找到ExecStar 在后面添加 -H tcp://0.0.0.0:2375

3.重启Docker

 systemctl daemon-reload
systemctl start docker

4.如果防火墙已经打开则需要开放2375端口

firewall-cmd --zone=public --add-port=2375/tcp --permanent

5.Idea安装Docker插件并配置连接Docker

6.连接成功会列出远程的容器和镜像,并且可以直接右键快速启动、关闭、删除容器或镜像

二:构建Springboot项目

1.pom文件在plugin添加docker-maven-plugin、maven-antrun-plugin插件

<build>
<finalName>study-demo</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application.properties</include>
<include>**/*.xml</include>
<include>**/*.json</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<copy todir="src/main/docker" file="target/${project.build.finalName}.${project.packaging}"></copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

2.在src/main目录下创建docker目录,并创建Dockerfile文件

这里给出了一个Dockerfile几个重要指令比较详细的参考说明

FROM java:8

#维护者信息
MAINTAINER boris@email.com #添加元数据到镜像,LABEL是以键值对形式
LABEL maintainer="bo.zou <boris@email.com>"
LABEL copyright="2015 ~ 2020 www.boris.com Inc. All rights reserved."
LABEL version="1.0.0"
LABEL declaration="Boris Test Dockerfile" #ENV设置环境变量 timezone
ENV TIMEZONE Asia/Shanghai #设置容器的工作目录
# WORKDIR
#RUN指令:用于指定 docker build 过程中要运行的命令
RUN mkdir /usr/local/boris
WORKDIR /usr/local/boris #复制指令,从上下文目录中复制文件或者目录到容器里指定路径
#ADD 指令和 COPY 的使用格式一致(同样需求下,官方推荐使用 COPY)
#将jar包添加到容器中并更名为app.jar
COPY *.jar /usr/local/boris/app.jar #定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。
#可以在镜像中创建挂载点,只要通过该镜像创建的容器都有了挂载点
#作用是和docker run命令的-v是一样,将宿主机和容器的目录做映射
#区别是:通过 VOLUME 指令创建的挂载点,无法指定宿主机上对应的目录,是自动生成的。可以通过查看容器的信息查看到,例:docker inspect 容器ID
#VOLUME ["/usr/local/boris/dockerlog"] ###声明启动端口号
EXPOSE 8080 #CMD 和 ENTRYPOINT 在docker run 时运行(启动容器时执行),主要用来指定容器默认执行的命令.
#CMD作用:当Docker镜像被启动后Docker容器将会默认执行的命令,CMD 指令指定的程序会被 docker run 命令行参数中指定要运行的程序所覆盖
#ENTRYPOINT作用:类似于 CMD 指令,区别在于不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序
#一个Dockerfile中只能有一个CMD或ENTRYPOINT命令,多个仅最后一个生效。多数情况下它们应该是单独使用的。
#配合使用时:
#• 如果 ENTRYPOINT 使用了 shell 模式,CMD 指令会被忽略。
#• 如果 ENTRYPOINT 使用了 exec 模式,CMD 指定的内容被追加为 ENTRYPOINT 指定命令的参数。
#• 如果 ENTRYPOINT 使用了 exec 模式,CMD 也应该使用 exec 模式。
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]

3.创建springboot项目controller和启动类做测试

4.增加配置

说明:

Dockerfile:指定你的Dockerfile文件 

Image tag : 指定镜像名称和tag,冒号分隔

Bind ports : 绑定宿主机端口到容器内部端口。格式为[宿主机端口]:[容器内部端口]

Bind mounts : 将宿主机目录挂到到容器内部目录中。格式为[宿主机目录]:[容器内部目录]

Contaner name:取一个容器名称,不填默认会随机生成一个名称

5.打包并运行

6.成功,可以看到创建的容器和镜像并且运行成功

结束,EDN。

IDEA远程快速部署SpringBoot项目到Docker环境的更多相关文章

  1. mac和linux下使用Docker,部署SpringBoot项目到docker

    主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等. 我用的电脑是mac, ...

  2. idea远程部署SpringBoot项目到Docker

    安装docker服务或者系统学习docker参考这篇文档:https://shimo.im/docs/fE0eJCx8IIojQXzB/ 1.配置docker的远程端口 vim /usr/lib/sy ...

  3. 利用 jrebel 热部署\远程调试\远程热部署 springboot项目 服务器上的代码

    首先要在eclipse 中启用 启用以后在 resource 中生成了 rebel-remote.xml 然后build,把生成的jar包放到服务器上. 然后用下面的命令启动 java -agentp ...

  4. 七. jenkins部署springboot项目(4)-linux环境--远程调试

    前提:linux环境,jenkins服务器和springboot服务器不在一台机器. linux环境,jenkins这里就不说了,主要说下和windows环境的不同. 1. jenkins服务器连接s ...

  5. 五. jenkins部署springboot项目(2)--windows环境--服务

    前提:jenkins和springboot运行在同一台机器 springboot 通过winsw部署为服务 winsw 下载地址:https://github.com/kohsuke/winsw/re ...

  6. 四. jenkins部署springboot项目(1)--window环境

    前提:jenkins和springboot运行在同一台机器 springboot项目使用git和maven jenkins所需的插件如Maven,Git等这里就不再详述. 1.jenkins配置git ...

  7. 六. jenkins部署springboot项目(3)--windows环境--远程windows server服务器

    前提:jenkins服务器和windows server服务器不在一台机器上 对于jenkins服务器上编译好的jar或war包如何推送到windows server服务器上. 参照网上的,在wind ...

  8. 提升10倍生产力:IDEA远程一键部署SpringBoot到Docker

    作者:陶章好 juejin.im/post/5d026212f265da1b8608828b 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计模式内容 ...

  9. Docker快速上手之部署SpringBoot项目

    Docker是基于Go语言实现的云开源项目. Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装.分发.部署.运行等生命周期 ...

随机推荐

  1. 洛谷4035 JSOI2008球形空间产生器 (列柿子+高斯消元)

    题目链接 qwq 首先看到这个题,感觉就应该从列方程入手. 我们设给定的点的坐标矩阵是\(x\),然后球心坐标\(a_1,a_2....a_n\) 根据欧几里得距离公式,对于一个\(n维空间\)的第\ ...

  2. Python实现九九乘法表

  3. SudokuSolver 1.0:用C++实现的数独解题程序 【一】

    SudokuSolver 1.0 用法与实现效果 SudokuSolver 是一个提供命令交互的命令行程序,提供的命令清单有: H:\Read\num\Release>sudoku.exe Or ...

  4. 【UE4 调试】提升UE4源码版本Setup下载速度

    更改setup.bat部分参数

  5. 【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志

    问题描述 在App Service For Windows的环境中,我们可以通过ArmClient 工具发送POST请求在Web应用的实例中抓取网络日志,但是在App Service For Linu ...

  6. the Agiles Scrum Meeting 5

    会议时间:2020.4.13 20:00 1.每个人的工作 今天已完成的工作 增量组:完成了增量开发的基础工作,初步完成了自动评测机制 issues:增量组:准备评测机制,增加仓库自动创建和管理 完善 ...

  7. 2020年OO助教工作总结

    随着这学期课程的落幕,我一学期的OO助教工作也宣告结束.这学期我的工作主要在系统组,和OO后台的数据库打交道. 作业查重 我几乎每周都会做的例行工作,是对每周的homework进行查重管理.由于使用了 ...

  8. python2和python3并存下的pip使用

    py -2 -m pip install  *.whl py -3 -m pip intall *.wl

  9. 从四个方向分析我们可以从linux学到什么

    我们真正关心的是自身可以从这个生态圈中获得些什么?说得更直白一点就是,我们可以从linux系统上面学到点什么,它对我们个人的成长和发展有哪些积极的因素.个人觉得,完全可以通过下面四个维度并结合自己的兴 ...

  10. CSS学习笔记:浮动属性

    目录 一.浮动流是什么 二.通过代码实例了解浮动特点 1. 搭建测试框架 2. 添加浮动 3. 浮动元素的排布 4. 给行内元素添加浮动效果 5. 子元素浮动后对父元素的影响 5.1 在父元素中添加o ...