Dockerfile 部署java web的环境详解
作者:lqh 发布时间:2021-10-02 00:41:44
标签:Dockerfile,java,web
Dockerfile 构建java web 环境
Dockfile 介绍:
Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。
用dockerfile构建一个Java的web环境,主要分为2步,
第一步是在镜像中安装jdk并配置环境变量,
第二步是安装tomcat。
先贴一下完整的dockerfile
FROM ubuntu:14.04
MAINTAINER *** "***@******.com"
RUN apt-get update
ADD jdk-8u77-linux-x64.tar.gz /usr/local/java
ENV JAVA_HOME /usr/local/java/jdk1.8.0_77
ENV PATH $JAVA_HOME/bin:$PATH
ENV CLASSPATH .:$JAVA_HOME/lib
COPY apache-tomcat-8.0.33/ /usr/local/tomcat/apache-tomcat-8.0.33/
#RUN unzip /usr/local/tomcat/apache-tomcat-8.0.33.zip
RUN chmod +x /usr/local/tomcat/apache-tomcat-8.0.33/bin/*.sh
EXPOSE 8080
ENTRYPOINT /usr/local/tomcat/apache-tomcat-8.0.33/bin/startup.sh && /bin/bash
原始镜像是ubuntu14.04,然后将jdk的和tomcat的安装包放到和dockerfile相同的目录下。
这个Dockerfile还是比较简单的,jdk和tomcat也都是不需要编译的,都是解压即用,所以没什么特殊的地方。
Dockerfile编辑完了,就在Dockerfile所在的文件夹下构建镜像
docker build -t="redstarofsleep/javaweb" .
最后运行镜像,运行镜像的时候记得绑定端口
docker run -d -t -i -p 8081:8080 redstarofsleep/javaweb
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/redstarofsleep/article/details/53669003


猜你喜欢
- 文件路径或者保存模板出现非法字符判断1)不为空判断string strTemplateName = txtTemplateName.Text
- java两个对象之间传值及封装在项目里面使用SSH框架的过程中, 经常涉及到修改,我们只要对部门的部门属性进行修改我们通常的做法是先从数据库
- 在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继续写这个系列的博客了,并不是对这个方
- 代码编译运行环境:VS2017+Debug+Win32按照参数形式的不同,C++应该有三种函数调用方式:传值调用、引用调用和指针调用。对于基
- 此方案适用于解决springboot项目运行时动态添加数据源,非静态切换多数据源!!!一、多数据源应用场景:1.配置文件配置多数据源,如默认
- 1、深度总结引用一位网友的话,说的非常好,如果别人问你static的作用;如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的;如果
- 目录Sonar概述一、 搭建sona服务二、idea配置三、 配置maven的setting.xml文件四、idea中 mvn sonar:
- Android支持多屏幕机制即用为当前设备屏幕提供一种合适的方式来共同管理并解析应用资源。本文就介绍了4中Android屏幕自适应解决方案。
- 本文实例讲述了Android编程防止进程被第三方软件杀死的方法。分享给大家供大家参考,具体如下:项目测试的时候发现,按home键回到桌面,再
- > 此文主要通过WinForm来制作一个休息提醒闹钟,通过设置时间间隔进行提醒,避免沉浸式的投入到工作或者学习当中,战斗的同时也要照顾
- 1.Bean 的创建生命周期UserService.class —> 无参构造方法(推断构造方法) &md
- 一般java在执行CMD命令时,通常是使用Runtime.getRuntime.exec(command)来执行的,这个方法有两种细节要注意
- 需求描述•在ViewModel中处理Model中的数据需要一定时间的等待•ViewModel或Model在获取数据或访问同步服务时有一定延迟
- 前言前面我们已经实现了服务的注册与发现(请戳:SpringCloud系列——Eureka 服务注册与发现),并且在注册中心注册了一个服务my
- 具体表现: 调用MediaRecorder的start()与stop()间隔不能小于1秒(有时候大于1秒也崩),否则必
- 函数与指针一个函数在编译时被分配一个入口地址,这个入口地址就称为函数的指针。在C++中, 函数名代表函数的入口地址。指针作函数的参数-实现地
- 网上关于如何切换,其实说的很明确,本文主要通过profile进行快速切换已实现在不同场合下,用不同的打包方式。jar到war修改步骤pom文
- 一、实验目的1. 掌握面向对象的编程思想、类与对象;2. 掌握类的封装性、继承性和多态性的作用;3. 掌握成员变量和成员方法的特性、构造方法
- 本文实例为大家分享了C#实现飞行棋小游戏的具体代码,供大家参考,具体内容如下逻辑图 以下是掷色子的一个代码,比较有代表性,里面的逻
- 本文实例讲述了Android编程判断网络是否可用及调用系统设置项的方法。分享给大家供大家参考,具体如下:private boolean ch