Docker-利用dockerfile来搭建tomcat服务的方法

发布时间 - 2026-01-10 22:28:35    点击率:

在前面的例子中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低。所以就需要一 种文件或脚本,我们把想执行的操作以命令的方式写入其中,然后让docker读取并分析、执行,那么重复构建、更新将变得很方便,所以Dockerfile就此诞生了。

常用参数:

FROM命令。用法,FROM <image>:<tag>。FROM命令告诉docker我们构建的镜像是以哪个(发行版)镜像为基础的

RUN命令。用法RUN <command>。RUN 后面接要执行的命令,比如,我们想在镜像中安装vim,只需在Dockfile中写入RUN yum install -y vim

ENV命令。用法,ENV <key> <value>。ENV命令主要用于设置容器运行时的环境变量

ADD命令。用法,ADD <src> <dest>。ADD主要用于将宿主机中的文件添加到镜像中

首先建一个目录构建我们的环境。

mkdir test/web

上传tomcat和jdk到该目录下。

[root@wls12c web]$ ls
apache-tomcat-7.0.70.tar.gz jdk-7u80-linux-x64.tar.gz 

编辑Dockerfile

vim Dockerfile

#pull down centos image
FROM centos
MAINTAINER test@test.com
#copy jdk and tomcat into image
ADD ./apache-tomcat-7.0.70.tar.gz /root
ADD ./jdk-7u80-linux-x64.tar.gz /root
#set environment variable
ENV JAVA_HOME /root/jdk1.7.0_80
ENV PATH $JAVA_HOME/bin:$PATH
#define entry point which will be run first when the container starts up
ENTRYPOINT /root/apache-tomcat-7.0.70/bin/startup.sh && tail -F /root/apache-tomcat-7.0.70/logs/catalina.out

构建镜像

[root@wls12c web]$ docker build -t keven/centos:tomcat-centos --rm=true .
Sending build context to Docker daemon 470.4 MB
Sending build context to Docker daemon 
Step 0 : FROM centos
 ---> d83a55af4e75
Step 1 : MAINTAINER test@test.com
 ---> Running in 955747d64da5
 ---> 1619dc8f6d58
................
70/logs/catalina.out
 ---> Running in fe48acf12d70
 ---> 52076383f11b
Removing intermediate container fe48acf12d70
Successfully built 52076383f11b

-t选择指定生成镜像的用户名,仓库名和tag

--rm=true指定在生成镜像过程中删除中间产生的临时容器。

 查看新产生的镜像

[root@wls12c web]$ docker images keven/centos
REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE
keven/centos    tomcat-centos    52076383f11b    19 minutes ago   516.6 MB

运行镜像

[root@wls12c web]$ docker run -d -p 8090:8080 5207
8260fa22aa32126f613a6b64f121e78545ceae01da58c61396968bfafeda3706

-p指定主机80端口与容器8080端口进行绑定

-d 指定容器运行后与当前tty分离,后台运行

5207是镜像的ID前4位。

 通过  http://宿主机IP:8090,即可看见我们熟悉的tomcat首页了。

另外还有一种自动映射主机端口的启动方法

[root@wls12c web]$ docker run -d -p 8080 --name myweb 520
de39869a8c560e5e0cf48fc6022c05ed9f9a145bdafb897767fa468dc24ebfff
[root@wls12c web]$ docker port de3
8080/tcp -> 0.0.0.0:32768
[root@wls12c web]$ 

这样就要通过http://宿主机IP:32768访问了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# dockerfile  # tomcat  # docker搭建tomcat  # dockerfile构建tomcat  # 如何基于Dockerfile构建tomcat镜像  # 基于alpine用dockerfile创建的tomcat镜像的实现  # Dockerfile制作官方Tomcat镜像及镜像使用详解  # Docker学习之基于Dockerfile搭建JAVA Tomcat运行环境的方法  # docker在已有的tomcat镜像上打新的镜像的Dockerfile编写说明介绍  # Docker容器上用DockerFile部署多个tomcat服务的步骤  # 镜像  # 主要用于  # 都是  # 只需  # 在前面  # 很低  # 首页  # 很方便  # 绑定  # 往里  # 大家多多  # 到该  # 过程中  # 机中  # 上传  # 发行版  # 目录下  # 诞生了  # wls12c  # ls 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何自定义错误页面(404, 500)?(代码示例)  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  Laravel如何与Pusher实现实时通信?(WebSocket示例)  制作企业网站建设方案,怎样建设一个公司网站?  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  JS去除重复并统计数量的实现方法  jQuery validate插件功能与用法详解  JavaScript模板引擎Template.js使用详解  长沙做网站要多少钱,长沙国安网络怎么样?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  手机网站制作与建设方案,手机网站如何建设?  Laravel Session怎么存储_Laravel Session驱动配置详解  中山网站制作网页,中山新生登记系统登记流程?  微信公众帐号开发教程之图文消息全攻略  canvas 画布在主流浏览器中的尺寸限制详细介绍  如何挑选最适合建站的高性能VPS主机?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  如何在建站宝盒中设置产品搜索功能?  如何在服务器上三步完成建站并提升流量?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  实例解析angularjs的filter过滤器  ,交易猫的商品怎么发布到网站上去?  香港服务器租用费用高吗?如何避免常见误区?  *服务器网站为何频现安全漏洞?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  历史网站制作软件,华为如何找回被删除的网站?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  三星网站视频制作教程下载,三星w23网页如何全屏?  详解Android图表 MPAndroidChart折线图  简历在线制作网站免费版,如何创建个人简历?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何快速搭建高效香港服务器网站?  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Laravel如何使用查询构建器?(Query Builder高级用法)  如何在万网自助建站中设置域名及备案?  Laravel如何实现模型的全局作用域?(Global Scope示例)  无锡营销型网站制作公司,无锡网选车牌流程?  如何在宝塔面板中修改默认建站目录?  Thinkphp 中 distinct 的用法解析  活动邀请函制作网站有哪些,活动邀请函文案?  音响网站制作视频教程,隆霸音响官方网站?