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. 丁磊:噢买尬,买它,华少别抢话
  2. try-catch-finally 与返回值的修改
  3. RocketMQ入门到入土(一)新手也能看懂的原理和实战!
  4. Swintransformer详细设计文档
  5. java线程池游戏代码,Java游戏起步:(一)线程与线程池-JSP教程,Java技巧及代码...
  6. 导出Excel神器最终版
  7. 黑马程序员---java基础------------------多线程
  8. MySQL: 查看一次SQL的执行时间都花在哪些环节上
  9. 获取时间差xx小时xx分钟前
  10. 如何制作一个HTML网页
  11. 微信号注册人工服务器,两个方法让你一次性找到微信人工客服,简单而又粗暴!...
  12. linux mint xmind运行,[deepin]安装XMind8并创建运行图标
  13. SAMA5D3X-EK 嵌入式linux内核编译启动及通过nfs通过网络启动文件系统及文件系统镜像的制作
  14. pandas parquet文件读取pyarrow、feather文件保存与读取;requests 或wget下载图片文件
  15. 中国目前的人工智能在全球处于什么水平?
  16. RTMPLive多流媒体协议转无插件直播协议(RTMP)解决方案
  17. Git 不可不知的常识 (1)
  18. 什么是CPA?如何通过CPA推广模式赚钱呢?
  19. 云和恩墨携手华为:让数据成就价值
  20. 洛谷 P1219-八皇后(dfs回溯)

热门文章

  1. 3.Git的工作流(慕课网)
  2. 第132篇 solidity 中的 mapping
  3. 实战真实网站的SQL注入
  4. 职场神器:只需三分钟,让ChatGPT帮我写周报
  5. linux命令及说明,Linux常用命令及使用方法大全
  6. combotree 的简单使用
  7. 用于HTML5移动开发的几大移动APP开发框架
  8. JavaScript中字符串拼接
  9. fedora设置更新源_fedora设置例程已更新
  10. 希望家人和朋友都平安健康