Spring Boot教程(十一) springboot程序构建一个docker镜像
准备工作
环境:
- linux环境或mac,不要用windows
- jdk 8
- maven 3.0
- docker
对docker一无所知的看docker教程。
创建一个springboot工程
引入web的起步依赖,创建一个 Controler:
@SpringBootApplication
@RestController
public class SpringbootWithDockerApplication { @RequestMapping("/")
public String home() {
return "Hello Docker World";
}
public static void main(String[] args) {
SpringApplication.run(SpringbootWithDockerApplication.class, args);
}
}
将springboot工程容器化
Docker有一个简单的dockerfile文件作为指定镜像的图层。让我们先创建一个 dockerFile文件:
src/main/docker/Dockerfile: FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD springboot-with-docker-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
我们通过maven 构建docker镜像。
在maven的pom目录,加上docker镜像构建的插件
<properties>
<docker.image.prefix>springio</docker.image.prefix>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.11</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
注意:${docker.image.prefix} 为你在 docker官方仓库的用户名,如果你不需要上传镜像,随便填。
通过maven 命令:
第一步:mvn clean
第二步: mvn package docker:bulid ,如下:
Step 2/6 : VOLUME /tmp
—> Running in a98be3878053
—> 8286e98b54c5
Removing intermediate container a98be3878053
Step 3/6 : ADD springboot-with-docker-0.0.1-SNAPSHOT.jar app.jar
—> c6ce13e50bbd
Removing intermediate container a303a3058869
Step 4/6 : RUN sh -c ‘touch /app.jar’
—> Running in cf231afe700e
—> 9a0ec8936c00
Removing intermediate container cf231afe700e
Step 5/6 : ENV JAVA_OPTS “”
—> Running in e192597fc881
—> 2cb0d73bbdb0
Removing intermediate container e192597fc881
Step 6/6 : ENTRYPOINT sh -c java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
—> Running in ab85f53fcdd8
—> 60fdb5c61692
Removing intermediate container ab85f53fcdd8
Successfully built 60fdb5c61692
[INFO] Built forezp/springboot-with-docker
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 01:45 min
[INFO] Finished at: 2017-04-19T05:37:44-07:00
[INFO] Final Memory: 19M/48M
[INFO] ————————————————————————
镜像构建成功。查看镜像:
docker images
显示:
forezp/springboot-with-docker latest 60fdb5c61692 About a minute ago 195 MB
启动镜像:
$ docker run -p 8080:8080 -t forezp/springboot-with-docker
打开浏览器访问 localhost:8080;浏览器显示:Hello Docker World。
说明docker 的springboot工程已部署。
停止镜像:
docker stop 60fdb5c61692
删除镜像:
docker rm 60fdb5c61692
Spring Boot教程(十一) springboot程序构建一个docker镜像的更多相关文章
- springboot程序构建一个docker镜像(十一)
准备工作 环境: linux环境或mac,不要用windows jdk 8 maven 3.0 docker 对docker一无所知的看docker教程. 创建一个springboot工程 引入web ...
- spring boot 教程(一) 构建我的第一个Spring boot
Spring Boot特点 1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 提供生产就绪型功能,如指标, ...
- Spring Boot(十一)Redis集成从Docker安装到分布式Session共享
一.简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API,Redis也是技术领域使用最为广泛的存储中间件,它是 ...
- DOCKER - 构建一个docker镜像并跑起来
一.有个基础镜像 1.基础镜像的选择 当前市场有众多可选择的基础docker镜像,可参考: https://blog.csdn.net/nklinsirui/article/details/80967 ...
- 程序员DD 《Spring boot教程系列》补充
最近在跟着程序员DD的Spring boot教程系列学习Spring boot,由于年代原因,Spring boot已经发生了一些变化,所以在这里进行一些补充. 补充的知识大多来自评论区,百度,Sta ...
- spring boot入门笔记 (一) - 一个简单的说明+一个案例
spring boot 简化开发:把平时开发者最常用的到一些步骤,按照开发者的习惯,把能包装的就包装成一些固有的工具类(就比如我们之前连接数据库时常写的DB工具类).当然,是在原有的spring框架的 ...
- Spring Boot教程(十六)属性配置文件详解(1)
相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁 ...
- Spring Boot 揭秘与实战 自己实现一个简单的自动配置模块
文章目录 1. 实战的开端 – Maven搭建 2. 参数的配置 - 属性参数类 3. 真的很简单 - 简单的服务类 4. 自动配置的核心 - 自动配置类 5. spring.factories 不要 ...
- spring boot / cloud (三) 集成springfox-swagger2构建在线API文档
spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...
随机推荐
- spring boot-4.配置文件
官方文档的23.4章节介绍了关于配置文件的内容 springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的 ...
- mysql主要性能监控指标
1.系统mysql的进程数 ps -ef | grep "mysql" | grep -v "grep" | wc –l 2.Slave_running mys ...
- ctrNet库介绍
一个神秘网友写的代码库,膜拜,附上下载链接:https://github.com/guoday/ctrNet-tool 似乎是专门为点击率预估写的库??? 收藏,日后慢慢研究
- C++中的单例类模板
1,本节课讲述单例类模式,实现并抽取相关代码实现单例类模板,在以后开发工作 中,如果想要使用单例模式,那么直接使用今天开发的单例类模板就可以: 2,需求的提出: 1,在架构设计时,某些类在整个系统生命 ...
- 让图片img标签上下左右居中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- [转载]Linux查看文件编码格式及文件编码转换
原文地址:https://blog.csdn.net/gatieme/article/details/55045883 3 linux下查看编码的方法 方法一:file filename file c ...
- scrapy存储mysql
scrapy 数据存储mysql #spider.pyfrom scrapy.linkextractors import LinkExtractor from scrapy.spiders imp ...
- UnknownPropertyException(Yii2)
在class里面的rule有属性,但是没声明
- cobbler装机系统部署
1.cobbler安装 [root@linux-node1 ~]# cp /etc/cobbler/settings{,.ori} # 备份 # server,Cobbler服务器的IP. sed - ...
- 关闭mmu和cache
处理器内部寄存器,访问速度最快,但是数量少 TCM:紧耦合存储器(Cache.主存储器) 辅助存储器(Flash.SD等) Cache是一种容量小但是存取速度非常快的存储器 它保存最近用到的存储器中的 ...
