SpringBoot 部署 docker 打包镜像

SpringBoot 部署 docker 打包镜像

环境:

  1、代码编写工具:IDEA

  2、打包:maven

  3、docker

  4、linux

  7、JDK1.8

  8、Xshell

  9、Xftp

第一步:使用idea创建简单的springboot项目

  引用一篇别人文章:https://blog.csdn.net/u013777094/article/details/78580710/

第二步:设置项目生成jar包(两种方式)

  1、修改pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>ordinary</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>ordinary</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

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

</project>

  2、或者在生成项目的时候 可以选择jar和war

第三步:使用maven 生成包 (使用idea不用命令 直接界面操作就可以(如果Maven设置没问题 直接就可以生成 包 log会提示生成后的文件目录))

第四步:docker概念

  1、docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker。

  2、dockerfile:它是Docker镜像的描述文件,可以理解成火箭发射的A、B、C、D……的步骤。

  3、docker镜像:通过Dockerfile做出来的,包含操作系统基础文件和软件运行环境,它使用分层的存储方式。

  4、docker容器:是运行起来的镜像,简单理解,Docker镜像相当于程序,容器相当于进程。

第四步:dockerfile指令

  Dockerfile由多条指令组成,每条指令在编译镜像时执行相应的程序完成某些功能,由指令+参数组成,以逗号分隔,#作为注释起始符,虽说指令不区分大小写,但是一般指令使用大些,参数使用小写

第五步:dockerfile文件例子(我只是简单将springboot项目生成docker镜像没有什么多余配置)

TODO:有一点需要注意的地方就是dockerfile文件没有任何后缀

# Pull base image
FROM  java:8  

MAINTAINER yihj "[email protected]"

VOLUME /tmp

# 添加
ADD ordinary.jar app.jar
RUN bash -c ‘touch /app.jar‘

# Define default command.
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

#设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo ‘Asia/Shanghai‘ >/etc/timezone

第六步:将dockerfile文件和生成好的jar 使用ftp工具上传到linux服务器 随便找个文件夹 放进去 jar和dockerfile在同级目录下

第七步:使用 docker build -t ordinary:v1.0 .

  TODO:

    1、 最后面的这个 . 代表在当前目录下面寻找 dockerfile 文件

    2、ordinary 镜像名字

    3、v1.0版本

第八步:查看镜像及启动

  1、使用docker images 来查看生成的镜像

  2、使用docker create 来创建容器 docker run 来创建并且运行容器

  3、也可以使用docker logs 容器名 --tail 100 -f 来查看项目启动日志 看项目是否启动

  3、如果上面步骤一切正常 可以直接调用IP加端口来访问项目

原文地址:https://www.cnblogs.com/zmsn/p/11697575.html

时间: 2024-10-06 10:53:09

SpringBoot 部署 docker 打包镜像的相关文章

docker(常见调试技巧):docker打包镜像调试技巧

写Dockerfile可以先不指定CMD.ENTRYPOINT等启动命令,只要拷贝就好了 如下: # Dockerfile for basic-app-client # Build with: # docker build -t basic-app-client:1.2.2-jdk7 . # Run with: # docker run -di --name basic-app-client basic-std-etl-client:1.2.2-jdk7 FROM openjdk:7-jre-a

docker打包镜像,上传镜像仓库,使用rancher发布

步骤一.首先将项目打包放在指定目录下 项目jar包名称为  micro-app.jar 步骤二.将jar包名称改为指定名称,执行命令    docker build -t micro-gateway:v1.4 . 意义:执行当前目录下的dockerfile文件创建镜像,镜像的标签为  micro-gateway:v1.4 dockerfile的文件内容为 FROM 你的ip:你的端口/library/jdk8:v1.0 MAINTAINER 你的标识 COPY ./restart.sh /res

Jenkins集成Docker实现镜像构建和线上发布

原文地址:http://www.cnblogs.com/keithtt/p/6410229.html 大概过程如下图: 由于需要用到docker打包镜像,jenkins宿主机上需要安装docker,原先的jenkins server安装在centos6上无法运行docker,所以这里单独用一台centos7安装一个jenkins server. jenkins的安装方法有多种: 1.下载jar包,直接通过java运行. 2.用tomcat作为容器运行. 3.通过yum安装. 4.通过docker

测试环境docker化(一)—基于ndp部署模式的docker基础镜像制作

本文来自网易云社区 作者:孙婷婷 背景 我所在测试项目组目前的测试环境只有一套,在项目版本迭代过程中,开发或产品偶尔会在测试环境进行数据校验,QA人数在不断增加,各个人员在负责不同模块工作时也会产生脏数据,导致QA在功能测试和接口测试过程中需要清理测试环境增加工作量,同时QA组在进行异常测试等多维度质量保障时也希望有多套环境进行数据隔离.但目前测试环境多套隔离操作麻烦,每隔离一套环境需要修改大量配置.数据库重新建表到调试可用,在开发的帮助下至少需要3天的时间,在这种场景下,我们借鉴组内大数据QA

离线手动部署docker镜像仓库——harbor仓库(二)

前言: 在<离线手动部署docker镜像仓库--harbor仓库(一)>中,记录了离线部署harbor仓库的简单过程,这里主要记录修改默认访问端口80端口为1180端口的部署方式和注意点. 实验环境:harbor服务器系统:CentOS Linux release 7.4.1708 (Core)harbor服务器IP:10.0.0.101harbor版本:v1.5.0docker版本:1.13.1另外为了测试pull镜像,使用了另一台test102机器:10.0.0.102 部署过程: 1.下

五十三.Docker概述、部署Docker、Docker镜像、Docker基本命令

1.安装Docker 准备两台虚拟机,IP为192.168.1.10和192.168.1.20 安装docker-engine 和 docker-engine-selinux 关闭防火墙 ************************************** 配置两台虚拟机: 创建两台虚拟机后端盘: images] qemu-img create -f qcow2 -b node.qcow2 docker1.img 50G images] qemu-img create -f qcow2

43_Docker概述、部署Docker、Docker镜像、Docker基本命令

1.安装Docker准备两台虚拟机,IP为10.10.11.10和10.10.11.20安装docker-engine 和 docker-engine-selinux关闭防火墙 1.1 配置yum源 1)配置第三方yum源(真机操作)]# mkdir /var/ftp/docker]# mv docker-engine-* /var/ftp/docker]# ls /var/ftp/dockerdocker-engine-1.12.1-1.el7.centos.x86_64.rpmdocker-

Docker打包 Asp.Net Core应用,在CentOS上运行

本文主要介绍下运用docker虚拟技术打包Asp.net core应用. Docker作为一个开源的应用容器引擎,近几年得到广泛的应用,使用Docker我们可以轻松实现应用的持续集成部署,一次打包,到处运行. 开篇借用百科上对docker的介绍. Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 方便大家学习: http://www.doc

部署docker容器虚拟化平台

Dcoker概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app).几乎没有性能开销,可以很容易地在机器和数据中心中运行.最重要的是,他们不依赖于任何语言.框架或包装系统.   Docker是dotCloud公司开源的一个基于LXC的高级容器引擎,源代码托管在Github上, 基于go语言并遵从Apache2