使用Docker发布应用
新建spring boot应用demo-docker,添加web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
入口类
@RestController
@SpringBootApplication
public class DemoDockerApplication { public static void main(String[] args) {
SpringApplication.run(DemoDockerApplication.class, args);
}
@RequestMapping("/")
public String index(){
return "Hello world!"+new Date();
}
}
使用maven打包

打开demo-docker\target 目录,找到jar文件

接下来使用Xshell连接到CentOS,cd 到目标目录,这里假如为/opt/demo
可以直接吧jar文件拖放到Xshell中,需要在CentOS上安装rz命令,如果没有安装会报错

使用下面的命令安装
yum install -y lrzsz
上传jar包后在demo 目录下创建一个Dockerfile文件
vi Dockerfile
编辑内容如下
FROM java:8
VOLUME /tmp
COPY demo-docker-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8100
ENTRYPOINT ["java","-jar","/app.jar"]
这里的touch命令是更新文件的创建时间
目录结构如下

接下来创建镜像
docker build -t demo .
-t 指定生成镜像的标签信息
后面的"."表示当前目录
执行上面的指令输出结果

使用下面命令运行镜像
docker run -d -p 8100:8100 demo
查看运行状态,访问http://localhost:8100

Docker指令说明
- FROM 格式为FROM<image>,或者FROM<image>:<tag>
- RUN 格式为RUN<command>或RUN["executable","param1","param2"] 前者默认将在shell终端运行命令,即/bin/sh -c;后者则使用exec执行,如RUN ["/bin/bash","-c","echo hello"]
- CMD 格式为CMD ["executable","param1","param2"] 使用exec执行;或CMD command param1 param2 在/bin/sh中执行;
- EXPOSE 格式为EXPOSE <port> [<port>...],如 EXPOSE 22 80 443
- ENV 指定环境变量,格式为ENV <key> <value>,如 ENV PATH /usr/local/nginx
- ADD 格式为ADD <src> <dest>,将复制指定的<src>路径下的内容到容器的<dest>路径下,<src>可以是Dockerfile所在目录的一个相对路径(文件或目录),也可以是一个URL,还可以是一个tar文件(如果为tar文件,会自动解压到<dest>路径下)
- COPY 格式为COPY <src> <dest>,复制本地主机的<src>下的内容到镜像的<dest>下,目标路径不存在时会自动创建,当使用本地目录为源目录时,推荐用COPY而不是ADD
- ENTRYPOINT 指定镜像的默认入口,支持两种格式 ENTRYPOINT ["executable","param1","param2"],或ENTRYPOINT command param1 param2
- VOLUMN 创建一个数据卷挂载点 格式为 VOLUMN ["/data"]
- USER 指定运行容器的用户名
- WORKIDR 为后续的RUN、CMD和ENTRYPOINT指定配置工作目录
使用Docker发布应用的更多相关文章
- .NET Core使用skiasharp文字头像生成方案(基于docker发布)
一.问题背景 目前.NET Core下面针对于图像处理的库微软并没有集成,在.NET FrameWork下我们已经习惯使用System.Drawing类库做简单的图像处理,到了.NET Core下一脸 ...
- Docker 发布 Abp net core web 服务
Docker 发布 Abp net core web 服务 准备工作:Abp 项目,这个是模板下载地址 https://aspnetboilerplate.com/Templates (本例使用的是S ...
- docker 发布方式尝试
docker 发布方式尝试 目前有个小项目, 尝试用docker的方式来发布, 项目只有一个节点, 使用 kubenate 有点小题大做, 所以采用docker-compose来发布. 发布过程 GI ...
- docker 发布应用时添加 git revision
概要 实施步骤 获取 git revision 前端 git revision 注入 后端 git revision 注入 概要 docker 发布应用时, 将 git revision 注入到应用中 ...
- Jenkins+Harbor+Docker发布
使用Jenkins发布Docke 需要准备的,docker,jenkins,Harbor docker安装 安装依赖: # yum install -y yum-utils device-mapper ...
- 结合docker发布后端项目(基于gradle包管理)的shell脚本
结合docker发布后端项目(基于gradle包管理)的shell脚本 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统(敏感信息都进行了处理) 目前主流的 ...
- 结合docker发布前端项目(基于npm包管理)的shell脚本
结合docker发布前端项目(基于npm包管理)的shell脚本 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统 目前主流的前后端分离的项目中,常常在部署 ...
- docker发布.net core程序的坑
docker发布遇到的两个问题 1:Could not resolve CoreCLR path. For more details, enable tracing by setting COREHO ...
- Angular入门到精通系列教程(14)- Angular 编译打包 & Docker发布
目录 1. 概要 2. 编译打包 2.1. 基本打包命令 2.2. 打包部署到二级目录 3. Angular站点的发布 3.1. web服务器发布 3.2. 使用docker发布 4. 总结 环境: ...
- docker 发布到私有docker registry
1.使用vs发布项目到文件夹: 2.在文件夹中新建dockerfile文件, 内容: FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-sli ...
随机推荐
- jQuery length 和 size()区别
jQuery length和size()区别总结如下: 1.length是属性,size()是方法. 2.如果你只是想获取元素的个数,两者效果一样既 $("img").length ...
- WordPress-Word图片上传插件整合教程-Xproer.WordPaster
插件下载(PHP):wordpress 3.7.1, 说明:由于许多插件可能使用相同钩子,导致冲突,所以提供手支方式整合. 1.上传插件目录. 说明:WordPress 3.7.1 使用的是TinyM ...
- css3动画特效集合
<!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...
- pyquery 安装
取得网页源代码,导入pyquery库 pip3 install pyquery 如果报错的话:python安装pyquery报错error: 'libxml/xmlversion.h' f ...
- 浮点型转整数型进行计算 - 移动GIS设备硬件的原因
在ArcGIS9.1之前桌面版ArcGIS都是采用整数存储的,是为了效率,将浮点型转为整数型存储,但9.2之后随着硬件的提升,浮点型的效率已经得到提高了,所以不再转换.但移动GIS设备还是要转整数型. ...
- mysql 中 datetime和 timestamp的区别
DATETIME日期和时间的组合.支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'.MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DA ...
- c# json转换成dynamic对象,然后在dynamic对象中动态获取指定字符串列表中的值
using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Linq;using System.T ...
- HDU2732一个让我debug了一晚上的题目
思路都理解了,清晰了,就是代码不对,还是有些小地方自己注意不到,即使就在你的眼前也不易发现的那种 Description: 也是一个最大流的构图,没相出来,或者说想简单了也是标记点1 至 n * m是 ...
- redis解决保存快照失败后redis无法写入的问题
通过关闭配置项stop-writes-on-bgsave-error解决该问题. redis 127.0.0.1:6379> config set stop-writes-on-bgsave-e ...
- jvm调优的分类
本文部分内容出自https://blog.csdn.net/yang_net/article/details/5830820 调优步骤: 衡量系统现状. 设定调优目标. 寻找性能瓶颈. 性能调优. 衡 ...