镜像(Mirroring)是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像.
镜像就是像照镜子一样.我们一般说的镜像是指给系统作个ghost镜像.这样可以在很短时间,很方便的还原出一个完整的系统来.镜像可以说是一种文件,比如iso,gho都属于镜像文件,镜像文件可以直接刻录到光盘中,也可以用虚拟光驱打开
认为你所说的Java里面的镜像应该是指为某些Java 文件做了镜像,而且镜像是一种计算机通用的说法,没有专门的"Java里的镜像"这种说法或者概念.
利用Dockerfile构建一个简单的java应用镜像,依赖环境比较简单,JDK,定制化的Tomcat(名为star-appserver)
①.、环境准备
FROM ubuntu:latest
MAINTAINER zhangjy
#install JDK and TOMCAT
ADD tomcat /usr/local/ #tomcat下为star-appserver,如果直接复制star-appserver,只会复制目录里边的内容,不会复制目录本身
ADD timezone /etc/
#启动脚本,用于从镜像启动容器时调用执行,见下面的ENTRYPOINT
ADD onStart.sh /usr/local/
#start tomcat
ENTRYPOINT ["/usr/local/onStart.sh"]
#!/bin/bash
/usr/local/star-appserver/bin/startup.sh
tail -f /usr/local/star-appserver/logs/stariboss.log
$docker build -t zhangjy/starsms:v1 .
Dockerfile文件配置说明:
FROM
表明基于哪个镜像创建
MAINTAINER
ADD
将目录或文件加入到镜像的某个目录,格式是ADD 源文件 目标目录
RUN
有两种格式:
RUN command (the command is run in a shell - /bin/sh -c - shell form)
默认RUN后的命令是在/bin/sh下执行,像Ubuntu默认/bin/sh是指向/bin/dash,如果想使用/bin/bash,则可按如下方式
RUN ["/bin/bash","-c","source /etc/profile"]
但需注意,这种方式不能解析类似于$HOME的参数引用
ENV
设置环境变量,在镜像构建过程中和容器启动后均有效
CMD
CMD在容器运行的时候提供一些命令及参数,用法如下:
- 第一种用法:运行一个可执行的文件并提供参数.
- 第二种用法:为ENTRYPOINT指定参数,即为ENTRYPOINT指定命令的默认参数,通过docker run命令传过来的参数会将其覆盖
- 第三种用法(shell form):是以"/bin/sh -c"的方法执行的命令.
如指定:
① CMD ["/bin/echo", "this is a echo test "]
build后运行(假设镜像名为ec):
① docker run ec
就会输出: this is a echo test
注意:如果在docker run命令后指定命令,如docker run ec echo 'test',会将CMD的命令覆盖.CMD的命令不能接收run传过来的参数,而ENTRYPOINT可以
ENTRYPOINT
有两种用法
第一种可以接收docker run命令传过来的参数(即使docker run传过来的是命令,也会被当做参数处理),如果想覆盖,可使用docker run ... --entrypoint COMMAND
一种,自己搭推送服务器,一般主流使用XMPP协议,也有相对成熟的框架和开源项目给你使用..优点是可以自由控制因为代码都是自己写的,缺点是搭建难度大,要吃透很花时间,而且心跳包的控制和终端的电量消耗都需要一定的水平
另外一种是用第三方推送,比如极光推送,个推等,优点是简单易用,不用考虑服务端的实现,然后有相对完整的文档,写几段java代码就好,对于中小公司等开发资源少的公司,极光推送是经过考验的大规模 App 推送平台,每天推送消息量级为数百亿条,能确保消息送达率
以上就是土嘎嘎小编为大家整理的java代码推送镜像相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!