新建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发布应用的更多相关文章

  1. .NET Core使用skiasharp文字头像生成方案(基于docker发布)

    一.问题背景 目前.NET Core下面针对于图像处理的库微软并没有集成,在.NET FrameWork下我们已经习惯使用System.Drawing类库做简单的图像处理,到了.NET Core下一脸 ...

  2. Docker 发布 Abp net core web 服务

    Docker 发布 Abp net core web 服务 准备工作:Abp 项目,这个是模板下载地址 https://aspnetboilerplate.com/Templates (本例使用的是S ...

  3. docker 发布方式尝试

    docker 发布方式尝试 目前有个小项目, 尝试用docker的方式来发布, 项目只有一个节点, 使用 kubenate 有点小题大做, 所以采用docker-compose来发布. 发布过程 GI ...

  4. docker 发布应用时添加 git revision

    概要 实施步骤 获取 git revision 前端 git revision 注入 后端 git revision 注入 概要 docker 发布应用时, 将 git revision 注入到应用中 ...

  5. Jenkins+Harbor+Docker发布

    使用Jenkins发布Docke 需要准备的,docker,jenkins,Harbor docker安装 安装依赖: # yum install -y yum-utils device-mapper ...

  6. 结合docker发布后端项目(基于gradle包管理)的shell脚本

    结合docker发布后端项目(基于gradle包管理)的shell脚本 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统(敏感信息都进行了处理) 目前主流的 ...

  7. 结合docker发布前端项目(基于npm包管理)的shell脚本

    结合docker发布前端项目(基于npm包管理)的shell脚本 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统 目前主流的前后端分离的项目中,常常在部署 ...

  8. docker发布.net core程序的坑

    docker发布遇到的两个问题 1:Could not resolve CoreCLR path. For more details, enable tracing by setting COREHO ...

  9. Angular入门到精通系列教程(14)- Angular 编译打包 & Docker发布

    目录 1. 概要 2. 编译打包 2.1. 基本打包命令 2.2. 打包部署到二级目录 3. Angular站点的发布 3.1. web服务器发布 3.2. 使用docker发布 4. 总结 环境: ...

  10. docker 发布到私有docker registry

    1.使用vs发布项目到文件夹: 2.在文件夹中新建dockerfile文件, 内容: FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-sli ...

随机推荐

  1. 关于css中设置属性的常识

    1.cellspacing 属性规定单元格之间的空间,请勿将该属性与 cellpadding 属性相混淆. 2.cellpadding 属性规定的是单元边沿与单元内容之间的空间. 3.text-ali ...

  2. head内部标签(常用部分)

    1.meta标签: <meta charset="utf-8" /> 2 <meta name="keywords" content=&quo ...

  3. dir命令详解

    dir命令:DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]  [/O[[:]sortorder]] ...

  4. bash多进程

    #!/bin/bashCMD_PATH=`dirname $0`#echo $CMD_PATH > /home/wubin/testjava -jar $CMD_PATH/Server.jar ...

  5. Scala_特质

    特质 特质概述 Java中提供了接口,允许一个类实现任意数量的接口 在Scala中没有接口的概念,而是提供了“特质(trait) ”,它不仅实 现了接口的功能,还具备了很多其他的特性 Scala的特质 ...

  6. 在Delphi中处理word文档与数据库的互联 1

    在Delphi中处理word文档与数据库的互联 ---- 目前,Delphi被越来越多的人选中作为MIS系统开发中的前台工具.在以Delphi为前台,一些大型数据库为后台的MIS系统中,图形的处理不可 ...

  7. Android-Recyclerview的简单使用

    由于Recyclerview是在 android.support.v7.widget.包 RecyclerView,所以需要导Recycler库: 导Recycler库: 选择项目,右键-->  ...

  8. 数据导出之winfrom导出word(二)

    本篇文章介绍了根据word模板导出word文档的方法. 一.获取模板地址 WordDocFileHelper WordTem = new WordDocFileHelper(); string pat ...

  9. UOJ#419. 【集训队作业2018】圆形(格林公式)

    题面 传送门 题解 首先您得会用格林公式计算圆的面积并 这里只需要动态维护一下圆弧就可以了 时间复杂度\(O(n^2\log n)\) //minamoto #include<bits/stdc ...

  10. Storm入门示例

    开发Storm的第一步就是设计Topology,为了方便开发者入门,首先我们设计一个简答的例子,该例子的主要的功能就是把每个单词的后面加上Hello,World后缀,然后再打印输出,整个例子的Topo ...