1、安装包准备

准备Centos镜像:

jdk和tomcat压缩包:

2、构建容器

2.1、编写构建文件

在存放安装包的目录下创建构建文件:

vi Dockerfile


在Dockerfile添加以下代码:

#依赖镜像名称和ID
FROM daocloud.io/library/centos:6.8#指定镜像创建者信息
MAINTAINER alinlx#切换工作目录
ADD jdk-8u181-linux-x64.tar.gz /opt/jdk
ADD apache-tomcat-9.0.50.tar.gz /opt/tomcat#配置java环境变量
ENV JAVA_HOME /opt/jdk/jdk1.8.0_181
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/binRUN chmod +x /opt/tomcat/apache-tomcat-9.0.50/bin/*.sh
EXPOSE 8080
ENTRYPOINT /opt/tomcat/apache-tomcat-9.0.50/bin/startup.sh && /bin/bash

参数解释:
FROM daocloud.io/library/centos:6.8
以centos6.8为基础构建容器

ADD jdk-8u181-linux-x64.tar.gz /opt/jdk/
ADD apache-tomcat-9.0.50.tar.gz /opt/tomcat/
添加两个压缩包,docker会自动解压好,/opt/ 是解压的文件位置

ENV JAVA_HOME /opt/jdk
ENV CLASSPATH J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar:JAVA
H
OME/lib/dt.jar:JAVA_HOME/lib/tools.jar
ENV PATH P A T H : PATH:PATH:JAVA_HOME/bin
ENV是docker中配置环境变量的方式,这里配置了jdk的环境。

2.2、根据构建文件,构建镜像

docker build -t alinlx/javawebfromdockerfile:0.2 . -f Dockerfile

创建名为alinlx/javawebfromdockerfile的镜像

2.3、构建完成,查看镜像

docker images

2.4、创建容器

启动 Java Web 容器,根据前面环境配置,不用再进入容器的命令行,而是直接启动容器内部的 tomcat 服务。使用以下命令:

docker run -d -p 8888:8080 -it alinlx/javawebfromdockerfile:0.2


参数解析:
-d:表示以“守护模式”执行/root/run.sh脚本,tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 8888 端口,这样就向外界暴露了 8888 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
–name:表示容器名称,用一个有意义的名称命名即可。
启动成功,通过docker ps命令来查看当前正在运行的容器:

4.3、测试

浏览器中,输入以下地址,即可访问 Tomcat 首页:http://127.0.0.1:8888/

**注意:**使用的是宿主机的 IP 地址,与对外暴露的端口号 8888,它映射容器内部的端口号 8080。

4.3.1、测试部署项目

容器倒是启动起来了,但是怎么把war包丢里面运行起来呢?

docker cp XXX.war 1e2b6b069253:/opt/tomcat/apache-tomcat-9.0.50/webapps


参数解释:
XXX.war: 需要部署的项目发布程序包
1e2b6b069253:/opt/tomcat/apache-tomcat-9.0.50/webapps 冒号前面为容器名称或者id, 冒号后面为tomcat的webapps全路径

将程序包拷贝进去后,tomcat会自动发布的,不需要再自己去启动tomcat了,因为容器启动后tomcat就默认启动了 Dockerfile最后一行就是启动tomcat。

访问系统:

说明:
也可以在创建容器的时候挂载本地目录到容器中,这样就不用拷贝,直接将程序包war放到本地挂载的目录就行。
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
  /bin/bash:一旦容器启动,需要执行的命令,当前使用 “/bin/bash”, 表示启动后直接进bash shell
  /usr/local/work/是宿主机器(Linux)上创建的一个文件夹;
  /mnt/software是centos的容器里面的目录文件
  这里挂载的意思就是 b36870be5ede 创建的容器访问 /mnt/software/ 目录下的文件就相当于访问 宿主机的 /usr/local/work/下的文件,且两者文件夹里内容相同。

docker配置java环境(dockerfile方式)相关推荐

  1. docker配置Java环境

    1. 下载jdk包 jdk-8u311-linux-x64.tar.gz Java Downloads | Oracle 2. mkdir /usr/java 3. cp <jdk> /u ...

  2. windows配置java环境

    windows配置java环境 下载JDK 安装JDK 配置环境变量 java9及以上版本配置环境变量(以java17为例,只需要配置JAVA_HOME和Path变量) 配置JAVA_HOME变量 配 ...

  3. Docker安装java环境并部署jar包运行

    Docker安装java环境并部署jar包运行 作为一个前端,了解后端部署jar包也是有必要的,在这里就我学习的,做一个简单的笔记,这里可以结合我的商品的增删改查的java文章一起看. java实现商 ...

  4. linux如何配置java环境_linux虚拟机配置java环境

    java不用做任何改动就可以部署到linux系统,java编译成*.class文件只需要虚拟机的支持,你只要在linux环境下装一个jdk就OK了,然后配置一下环境变量.然后java的class文件或 ...

  5. VSCode 配置Java环境

    VSCode 配置Java环境 闲话少说,开始配置挚爱的 VSCode!!! 第一步,安装VScode小插件 第二步,简单写个测试代码 然后进入 setting.json 替换以下代码 第三步,配置 ...

  6. ActiveMQ的安装和启动 安装JAVA配置JAVA环境 下载ActiveMQ 解压压缩包 tar zxvf activemq-x.x.x-bin.tar.gz 至此,linux下Activ

    ActiveMQ的安装和启动 安装JAVA配置JAVA环境 下载ActiveMQ 解压压缩包  tar zxvf activemq-x.x.x-bin.tar.gz 至此,linux下ActiveMQ ...

  7. M1 MAC配置JAVA环境

    M1 MAC配置JAVA环境 一.JDK配置 1.下载JDK 2.配置环境 二.maven安装与配置 1.下载maven 2.解压压缩包 3.配置MAVEN环境变量 最近购入了M1芯片的MAC电脑,记 ...

  8. Windows10配置JAVA环境变量(图文教程)

    本章教程,简单介绍一下如何在windows10上配置JAVA环境变量. 目录 一.下载JDK 二.安装过程 (1)首先得到一个JDK安装可执行程序 (2) 以管理员方式运行exe (3) 更改JDK安 ...

  9. server2012JAVA环境变量_Windows2012云服务器怎么配置java环境变量?

    一.Java为何要配置环境变量? 所有学习java的小伙伴应该都知道,学习的第一步就是要学习java的环境变量配置. 1.变量 知道吧? 对,就是可以随意给其赋值的一个存储单元. 2.那么环境呢? 首 ...

最新文章

  1. 轻量级数据库中间件利器Sharding-JDBC深度解析(有彩蛋)
  2. java8 stream 做累加_《Java 8 in Action》Chapter 1:为什么要关心Java 8
  3. Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)
  4. Lucene 如何热备份
  5. linux64 gaussian 16,Gaussian 16 运行与硬件配置参考
  6. 1到20的阶乘和是多少 php,20的阶乘(1到20的阶乘和结果)
  7. android reshare.c病毒,恶意软件分析 URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...
  8. 程序员修炼之道(第2版)
  9. Js 中实现重定向的几种方式
  10. 如何删除双系统中的ubuntu系统
  11. 【项目管理/PMP/PMBOK第六版/新考纲】纯干货!商业论证/效益管理计划/项目运行环境/组织过程资产/环境事业因素/组织系统,系列笔记建议收藏!
  12. Python是什么意思?一篇文章给你讲清楚!
  13. 2022年docker面试题大全(持续更新中)
  14. html5 移动游戏,HTML5移动游戏时代到来了!
  15. 网页无法访问,不安全警告或证书过期问题解决
  16. opencv(10) OpenCV 找出图像中最小值最大值函数minMaxLoc
  17. Word for Mac 显示空格
  18. Blender新手入门练习 宝剑
  19. 2020年校招[随手更新]
  20. hexo 博客next主题集成gitment或者gitalk评论系统

热门文章

  1. ROS Navigation-----导航功能包集设置和配置学习
  2. 数据结构(JAVA)第二篇-----链表
  3. 王者荣耀服务器维护到什么时候2019,王者荣耀2019返场皮肤时间表 这些时间点必出返场皮肤...
  4. js验证身份证正则表达式
  5. nginx php配置重写,nginx 配置 php url 重写
  6. 重装Windows10系统(优启通)
  7. C# dsoframer.ocx 控件注册
  8. 安卓几种图片加载框架的比较
  9. 苹果备忘录误删了怎么恢复?恢复备忘录的3个方法!
  10. 高标准生产车间空压站油水环保处理设备 ows.01275.00.00