Centos8.3、docker部署springboot项目实战案例分析

引言

目前k8s很是火热,我也特意买了本书去学习了一下,但是k8s动辄都是成百上千的服务器运维,对只有几台服务器的应用来说使用k8s就有点像大炮打蚊子。只有几台服务器的应用运维使用传统的tomcat部署很繁琐,效率不高,动辄十几分钟部署一台服务,使用jenkins部署又太过复杂,斟酌许久我还是选择了使用docker+dockerFile的方式部署。这种方式部署简单高效。

docker安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #一键安装脚本
systemctl enable docker.service                                    #设置docker开机启动
systemctl restart docker.service                                   #启动docker服务

开启docker远程访问端口

编辑/usr/lib/systemd/system/docker.service文件添加-Htcp://0.0.0.0:12375 -H unix://var/run/docker.sock 如下图:

保存文件后重新加载配置然后重新启动

systemctl daemon-reload           # 重新加载配置
    systemctl restart docker.service  # 重启docker服务

注意:-Htcp://0.0.0.0:12375 这句话的意思任意ip都可以使用tcp访问这个端口可以根据实际情况匹配IP。因为这里没有token或者密钥所以要特别注意如果使用云服务器那么强烈建议这里设置为安全组IP白名单访问。我当初在测试环境使用docker发布三四个小时就被人攻击了不过当初我是用的2375端口,这个端口特别容易被攻击。

配置IDEAdocker环境

idea安装docker环境插件如下图:

安装完成后重启idea然后打开springboot项目,在根目录创建Dockerfile文件。如下图:

编辑Dockerfile如下:

FROM openjdk:11
# 镜像是从 openjdk:11-jdk-alpin 继承而来的

VOLUME /root/tmp
# 表示挂载了 /root/tmp 目录到容器中

ADD build/libs/brief-plus-0.0.1-SNAPSHOT.jar apprun.jar
# 将bootJar 添加到镜像中根目录下 命令为 apprun.jar

ENTRYPOINT ["java","-jar","/apprun.jar"]
# ENTRYPOINT 在容器启动后执行 java 命令来运行程序

# 设置容器时间
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# ======= 其它的一些Dockerfile命令 ========== 这里我们没有用到不过还是提一下
#COPY package.json /usr/src/app/
#ADD 更高级的复制文件
#ADD 指令和 COPY 的格式和性质基本一致。但是在 COPY 基础上增加了一些功能。
#CMD 指令就是用于指定默认的容器主进程的启动命令的。
#ENV 设置环境变量
#HEALTHCHECK 健康检查
#EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8090

主要注意build/libs/brief-plus-0.0.1-SNAPSHOT.jar apprun.jar 这句话。 我是用的gradle编译后的文件位于build/libs/ 目录下 如下图:

maven编译后的文件位于target目录下如下图:

Dockerfile是根据具体的目录和打包后的名称来获取生成镜像文件所以这里一定不能出错。

配置Docker服务

配置运行环境

创建一个tcp连接服务

3.配置发布到docker的服务

绑定端口ip的详细配置

打包发布

心得建议

1.docker的镜像文件会分块,每块都有自己的签名,每次上传会进行对比差异的文件才会重新上传。

2.每次上传的时候记得更改标签方便根据标签进行回滚。

3.修改服务器的网络配置、防火墙需要重启docker服务。

docker 常用命令:

重启docker

systemctl restart docker      # 重启docker服务
systemctl daemon-reload    # 重新加载docker配置

查看30分钟内的日志

docker logs --since 30m id

以上就是Centos8.3、docker部署springboot项目实战记录的详细内容,更多关于docker部署springboot项目的资料请关注我们其它相关文章!

(0)

相关推荐

  • 利用Dockerfile部署SpringBoot项目的方法

    1.创建一个SpringBooot项目并且打成jar包 2.在Linux中创建一个文件夹,来做docker测试 [root@izwz90lvzs7171wgdhul8az ~]# mkdir /root/docker_test 3.将jar包上传到Linux中 创建存放jar包的文件夹 [root@izwz90lvzs7171wgdhul8az docker_test]# mkdir /root/docker_test/jar 然后利用XShell上传jar包到上面的文件夹中 4.编写Docke

  • 详解springboot项目docker部署实践

    网上查了下大部分boot项目部署都是在linux和docker hub环境下完成的,由于本人开发环境在windows下面,并且docker容器也是使用的docker tools,而且也没有做docker hub的加速.所以就尝试在windows环境下利用阿里云docker仓库完成部署. 1.在docker tools 中新建文件夹,并且找到位置,然后把打包好的boot jar文件放入新建的文件夹中 在该文件夹下面新建一个Dockerfile文件,示例如下: FROM daocloud.io/ja

  • 在Idea中使用Docker部署SpringBoot项目的详细步骤

    前言 项目需要: 安装Dockeridea中安装docker插件,并配置docker一个SpringBoot项目创建Dockerfile 一.下载.安装.配置Docker下载Docker 下载地址:官网下载 Docker 安装 一直下一步就行 配置路径:Settings–General 勾选 Expose daemon on tcp://localhost:2375 without TLS 设置镜像,提高下载镜像的速度https://xaiqlt1z.mirror.aliyuncs.com 测试

  • Springboot项目打war包docker包找不到resource下静态资源的解决方案

    前一段时间遇到一个问题,是关于读取项目中文件资源的问题.我是一个maven工程 我把一张照片放到resource下面,然后在本地读取的时候可以读取到,但是一旦打成WAR包以后就总是包找不到文件资源错误.我的war包是springboot打的war包,是内嵌的tomcat所以不解压,然后系统去找路径的时候会发现是个WAR包,而图片在WAR包内,所以找不到. 为了解决这个问题,我走了好多弯路,一直在路径上花费时间. 一开始使用修改配置文件的方式: # 配置静态资源访问前缀 spring.mvc.st

  • 使用Docker部署SpringBoot项目的实现方法

    Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下. 首先构建一个简单的 Spring Boot 项目,然后给项目添加 Docker 支持,最后对项目进行部署. 一个简单 Spring Boot 项目 在 pom.xml 中 ,使用 Spring Boot 2.0 相关依赖 <parent> <groupId>org.springframework.boot</groupId>

  • Centos8.3、docker部署springboot项目实战案例分析

    引言 目前k8s很是火热,我也特意买了本书去学习了一下,但是k8s动辄都是成百上千的服务器运维,对只有几台服务器的应用来说使用k8s就有点像大炮打蚊子.只有几台服务器的应用运维使用传统的tomcat部署很繁琐,效率不高,动辄十几分钟部署一台服务,使用jenkins部署又太过复杂,斟酌许久我还是选择了使用docker+dockerFile的方式部署.这种方式部署简单高效. docker安装 curl -fsSL https://get.docker.com | bash -s docker --m

  • Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码

    最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4.项目准备 5.编写 Dockerfile 6.发布项目 7.测试服务 环境准备 系统:Ubuntu 17.04 x64 Docker 17.12.0-ce IP:45.32.31.101 一.安装 Docker CE 国内不建议使用:"脚本进行安装",会下载安装很慢,使用步骤 1 安装,看下面的链接:常规安装方式 1.常规安装方式 Ubuntu 17.04 x64 安装

  • centos8使用Docker部署Django项目的详细教程

    引言 在本文中将介绍在Docker中通过django + uwsgi + nginx部署方式部署Django项目, 由于记录的是学习过程,使用的都是目前较高的版本. python  版本为3.8.3 django  版本为3.0.6 nginx   版本为1.17.10 好了简单的介绍之后,就进入正题了. 创建一个工作目录 创建一个工作目录用来存放项目,和Dockerfile等文件. mkdir uwsgidocker 简单说明一下各个文件 docker-compose.yml: Docker

  • IDEA集成docker部署springboot项目的全过程

    目录 1.IDEA下载docker插件 2.云服务器docker 2.1 docker的安装 2.2 停止docker服务 2.3 docker配置文件修改 2.4 刷新配置文件 2.5 启动docker服务 2.6 防火墙增加2375端口 2.7 阿里云增加安全组规则 2.8 测试远程HTTP连接 3. maven项目打包 3.1 打包插件 3.2 资源文件的打包及打包后的位置 3.3 docker插件 3.4 clean.install和docker build 4.遇到的坑 5.参考 1.

  • Docker部署springboot项目到腾讯云的实现步骤

    目录 服务器的配置 安装MySql 将springboot项目打成jar包 编写Dockfile文件 访问 删除重做(更新)镜像 服务器的配置 服务器配置总结为三个,防火墙,端口,和安全组 1.防火墙 查看防火墙状态 firewall-cmd --state 没有开启则开启防火墙 systemctl start firewalld.service 2.端口 添加对外开放的端口 firewall-cmd --zone=public --add-port=端口号/tcp --permanent fi

  • Docker部署Spring-boot项目的示例代码

    一.基础Spring-boot快速启动 1.1 快速启动 pom.xml加入如下依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> </parent> <properties&g

  • centos6使用docker部署kafka项目的方法分析

    本文实例讲述了centos6使用docker部署kafka项目的方法.分享给大家供大家参考,具体如下: 目录结构: /kafka     /Dockerfile     /start.sh     /Readme     /kafka_2.11-0.10.2.1.tgz Dockfile FROM centos MAINTAINER qiongtao.li hnatao@126.com ADD ./kafka_2.11-0.10.2.1.tgz /opt ADD ./start.sh /star

  • Mac下部署springBoot项目到Docker中(demo)

    SpringCloud + Docker 的便利和强大真的超乎想象,我已经入坑了-好了,不说废话,记录一个简单的 Demo 供其他同学排坑. 前言 惯例不能丢,先上源代码:docker-demo 这个项目的代码是我执行在Docker上部署SpringBoot的java代码和Dockerfile配置文件,相关的执行命令语句也记录在上. 操作流程 本地部署 在 Mac 上安装启动 Docker.详细步骤请参考:MacOS安装Docker clone 项目:docker-demo,然后依次执行: do

随机推荐