docker 构建自己的image 镜像文件
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 镜像文件的更多相关文章
- Docker构建nginx+uwsgi+flask镜像(二)
Dockerfile搭建环境并打包应用 在上一章Docker构建nginx+uwsgi+flask镜像(一)的学习中,我们学会用命令行一句一句在alpine环境中搭建nginx+uwsgi+flask ...
- Docker commit 命令保存的镜像文件太大的问题
基础镜像: centos7.5 进入容器后, 先后安装了 jdk1.8, maven3.6.0, git, rocketmq4.3.2 安装完成后使用 docker commit 命令保存为镜像 结果 ...
- 使用docker构建简约高效的镜像
背景介绍 最近在思考一个问题,我的golang运行到docker环境上的时候,需要安装很大依赖.思考发现我需要就是一个运行二进制的环境而已并不需要golang的编译器等等其他任何多余的. 当前的doc ...
- Docker for windows修改默认镜像文件位置
docker版本为18.06 windows上安装的docker其实本质上还是借助与windows平台的hyper-v技术来创建一个Linux虚拟机,你执行的所有命令其实都是在这个虚拟机里执行的,所以 ...
- Docker构建nginx+uwsgi+flask镜像(一)
前言 笔者之前是从事Java方面的工作,自从18年5月左右来到新的公司,接触到Python,被其简单优雅的语法风格深深吸引,同时,新公司也帮助笔者打开Docker世界的大门,让笔者体会到“一次打包,到 ...
- 使用Docker构建PHP7.4 + Swoole + Redis镜像
使用Docker构建PHP7.4 + Swoole + Redis镜像 Docker是一个用于开发,交付和运行应用程序的开放平台.开发者可以利用Docker来快速交付,测试和部署代码,从而大大减少编写 ...
- docker 删除无用的镜像文件的命令小计
df -h 查看当前服务器的内存情况 docker system prune 删除无用镜像文件命令 执行ok之后,再次查看内存情况.
- freeswitch的docker构建过程
概述 Docker是一个开源的应用容器引擎,可以让开发者打包应用以及依赖包到一个轻量级.可移植的容器中,并在任何安装有Docker的机器上运行. Docker 使你能够将应用程序与基础架构分开,从而可 ...
- 【docker linux】linux系统镜像转化为docker镜像
概述 使用docker安装linux的同学都知道,你在docker提供的仓库安装linux系统,你就会体验到最精简的.最纯净的linux系统,当然,他会精简到你连ifconfig命令都需要自己配置,恰 ...
随机推荐
- 【C++札记】const关键字
C++中const关键字无处不在,我这里做下汇总,作为工具文章方便翻阅. 一:修饰数据成员 修饰的成员一单定义初始化后不能再进行修改,如: const int a = 10; a =20; //重新赋 ...
- SQL——BETWEEN操作符
一.BETWEEN操作符的基本用法 BETWEEN操作符用于选取两个值范围内的值. 语法格式如下: SELECT 列名1,列名2... FROM 表名 WHERE 列名 BETWEEN 值1 AND ...
- 微信小程序自定义组件,提示组件
微信小程序自定义组件,这里列举了一个常用的提示自定义组件,调用自定义组件中的方法和字段.仅供参考和学习. 编写组件: 在根目录下添加“components”目录,然后像添加Page页面一样添加自定义组 ...
- 空间数据索引RTree(R树)完全解析及Java实现
第一部分 空间数据的背景介绍 空间数据的建模 基于实体的模型(基于对象)Entity-based models (or object based) 常用的空间数据查询方式 空间数据获取的方法 R树 简 ...
- ADO.NET 五(DataAdapter 与 DataSet)
在执行对表中数据的查询时还能将数据保存到 DataSet 中,但需要借助 DataAdapter 类来实现. 在实际应用中,DataAdapter 与 DataSet 是在查询操作中使用最多的类. 此 ...
- python逻辑编程之kanren
https://github.com/logpy/logpy https://pypi.org/project/kanren/ https://www.yiibai.com/ai_with_pytho ...
- Linux 基础学习2
目录 Linux 基础学习2 文件目录结构 文件命名规范 文件系统结构 linux应用程序的组成 绝对路径和相对路径 目录名和基名 切换目录 切换到家目录 切换到上一次的目录 显示当前的工作目录 列出 ...
- apk反编译工具包for Mac OS的使用
在本文中我将介绍如何在Mac OS X上使用apktool.jar.dex2jar.jd-gui来进行apk的反编译和查看源码.下面会提供每个工具的下载地址. 测试环境:OS X EI Capitan ...
- springboot学习入门简易版七---springboot2.0使用@Async异步执行方法(17)
1启动类开启异步调用注解 @SpringBootApplication @EnableAsync //开启异步调用 public class StartApplication { 不开启则异步调用无效 ...
- pip 和pip3的区别
前言装完python3后发现库里面既有pip也有pip3,不知道它们的区别,因此特意去了解了一下. 解释先搜索了一下看到了如下的解释, 安装了python3之后,库里面既会有pip3也会有pip 1. ...