docker build 构建自己的镜像文件。

1、在本地工程中运行生成一个springboot的可运行的jar。

因为我习惯用eclipse,所以在eclipse下新建一个springboot的工程,firstSpringboot的工程。

maven配置文件中,注意:必须指定生成文件后运行的主函数mian,否则可能导致的结果是无法访问main函数的错误。

maven配置的pom.xml文件

<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.springboot</groupId>
<artifactId>firstSpringboot</artifactId>
<version>0.0.1-SNAPSHOT</version> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
</dependencies>
<build>
<!-- 生成文件的包名称 -->
<finalName>firstSpringboot</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 必须指定主函数 -->
<configuration>
<mainClass>com.springboot.Application</mainClass>
<executable>true</executable>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>

springmvc中,访问后,会打印出这样一句话。

执行 maven命令打包,也可通过工具直接build。mvn clean package 或install  都可以。

生成文件后如图所示。

2、在本地测试一下是否可访问。

在本机doc下启动我们的jar包看看看是否可以启动。

如果没主函数main指定,会报找不到主干数错误。

doc下启动服务命令:

java -jar \路径\firstSpringboot
\target\firstSpringboot-0.0.-SNAPSHOT.jar

启动完成,本地测试,在浏览器中输入 :

http://localhost:8090/hello

访问通了,可见我们的jar包是ok的,页面展示如下:

3、在/usr/local下创建一个dockerapp的目录,将本地生成的jar文件上传到docker服务器上的这个目录。/usr/local/dockerapp

cd /usr/loca
mkdir dockapp

然后通过ftp、或者secureCRT将我们的jar包上传到服务器下。

4、在上传文件的目录/usr/local/dockerapp 下新建一个Dockerfile文件,文件内容定义jar包信息在docker容器中的名称。保存文件。

创建Dockerfile文件。

文件内容:意思是使用的是jdk8,将firstSpringboot.jar文件添加到docker容器下,并且名字为first-springboot.jar,对外声明启动端口是8090,跟我们的application.yml配置文件一样。最后就是执行命令生成

###java8环境镜像
FROM java:8
###复制文件到容器app-springboot
ADD firstSpringboot.jar /first-springboot.jar
###声明启动端口号
EXPOSE 8090
###配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/first-springboot.jar"]

执行成功。如图所示:

5、用docker build -t 文件名称 . 这个命令构建镜像文件image ,后面那个“.”表示当前目录。

docker build -t first-springboot .

6、查看镜像文件是否生成。

docker images

7、运行docker run 命令启动我们的应用。

启动应用。

docker run -p : first-springboot

服务启动成功,如下图所示

8、测试应用是否可访问。

访问地址:http://192.168.5.129:8080/hello

浏览器显示如下:证明很ok。

9、测试原端口是否可以访问。

访问:http://192.168.5.129:8090/hello

请求失败。。

10、设置服务在后台运行

#在后台运行,在run后面加-d
docker run -d -p 8080:8090 first-springboot
#查看有哪些容器在运行
docker ps

  如图

总结:docker部署流程,有点复杂,但是熟练后,应该很简单。接着学。

docker 构建自己的image 镜像文件的更多相关文章

  1. Docker构建nginx+uwsgi+flask镜像(二)

    Dockerfile搭建环境并打包应用 在上一章Docker构建nginx+uwsgi+flask镜像(一)的学习中,我们学会用命令行一句一句在alpine环境中搭建nginx+uwsgi+flask ...

  2. Docker commit 命令保存的镜像文件太大的问题

    基础镜像: centos7.5 进入容器后, 先后安装了 jdk1.8, maven3.6.0, git, rocketmq4.3.2 安装完成后使用 docker commit 命令保存为镜像 结果 ...

  3. 使用docker构建简约高效的镜像

    背景介绍 最近在思考一个问题,我的golang运行到docker环境上的时候,需要安装很大依赖.思考发现我需要就是一个运行二进制的环境而已并不需要golang的编译器等等其他任何多余的. 当前的doc ...

  4. Docker for windows修改默认镜像文件位置

    docker版本为18.06 windows上安装的docker其实本质上还是借助与windows平台的hyper-v技术来创建一个Linux虚拟机,你执行的所有命令其实都是在这个虚拟机里执行的,所以 ...

  5. Docker构建nginx+uwsgi+flask镜像(一)

    前言 笔者之前是从事Java方面的工作,自从18年5月左右来到新的公司,接触到Python,被其简单优雅的语法风格深深吸引,同时,新公司也帮助笔者打开Docker世界的大门,让笔者体会到“一次打包,到 ...

  6. 使用Docker构建PHP7.4 + Swoole + Redis镜像

    使用Docker构建PHP7.4 + Swoole + Redis镜像 Docker是一个用于开发,交付和运行应用程序的开放平台.开发者可以利用Docker来快速交付,测试和部署代码,从而大大减少编写 ...

  7. docker 删除无用的镜像文件的命令小计

    df -h  查看当前服务器的内存情况 docker system prune  删除无用镜像文件命令 执行ok之后,再次查看内存情况.

  8. freeswitch的docker构建过程

    概述 Docker是一个开源的应用容器引擎,可以让开发者打包应用以及依赖包到一个轻量级.可移植的容器中,并在任何安装有Docker的机器上运行. Docker 使你能够将应用程序与基础架构分开,从而可 ...

  9. 【docker linux】linux系统镜像转化为docker镜像

    概述 使用docker安装linux的同学都知道,你在docker提供的仓库安装linux系统,你就会体验到最精简的.最纯净的linux系统,当然,他会精简到你连ifconfig命令都需要自己配置,恰 ...

随机推荐

  1. Linux 中的 ~/. 表示的意思

    在Linux中, ~ 表示用户的目录, 如用户名是Gavin, 那么~/表示  /home/Gavin 所以~/. 表示 用户目录下的隐藏文件. 扩展: 若以用户身份登录 ~ 表示 /home  目录 ...

  2. PB 计算公式算出结果赋值给另外一列

    在数据窗口中添加一个公式列 --在itmchanged事件中写的计算赋值代码 String ls_gs,ls_sqldecimal{2} ls_gsjg if dwo.name='gs1' then ...

  3. TypeScript之函数

    1.函数声明 与javascript一样,ts的函数声明也分为两种:函数声明,函数表达式 1)函数声明: function fn(age:number):string{ return `age is ...

  4. 全栈项目|小书架|微信小程序-项目结构设计分包

    前面的文章 介绍了服务端的基础搭建以及用户模块的设计,接下来就是在服务端和客户端实现具体的业务了. 本篇文章先来介绍微信小程序开发的项目结构设计,也就是项目分包情况. 由于项目是在<极客时间-9 ...

  5. postgres 序列

    postgres序列(serial)和类型:https://www.cnblogs.com/alianbog/p/5654604.html 序列:https://www.cnblogs.com/mch ...

  6. Springboot打包执行源码解析

    一.打包 Springboot打包的时候,需要配置一个maven插件[spring-boot-maven-plugin] <build> <plugins> <plugi ...

  7. Selenium与PhantomJS踩过的坑

    Selenium与PhantomJS踩过的坑 Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动化操作, ...

  8. element ui改写实现两棵树

    使用element ui组件库实现一个table的两棵树的效果 效果如下,左边树自动展开一级,右边树默认显示楼层,然后可以一个个展开 代码如下 <el-table :data="rel ...

  9. ZeroMQ自查手册

    简介 ZMQ (以下 ZeroMQ 简称 ZMQ)是一个简单好用的传输层,像框架一样的一个 socket library,他使得 Socket 编程更加简单.简洁和性能更高.是一个消息处理队列库,可在 ...

  10. 【转载】JVM结构、GC工作机制详解

    文章主要分为以下四个部分 JVM结构.内存分配.垃圾回收算法.垃圾收集器.下面我们一一来看. 一.JVM结构 根据<java虚拟机规范>规定,JVM的基本结构一般如下图所示: 从左图可知, ...