Docker 创建1个自己的Tomcat 镜像
第一步 准备Tomcat 和 JDK的安装包
在Docker 中, Tomcat 是运行在Linux上的, 所以我们的Docker File 要基于Centos.
同时, 要运行Tomcat jdk也是必要的。
对于Centos 我们使用官方的镜像就ok了
因为学习关系, Tomcat和jdk的压缩包就自己准备, 不使用官方的。
[gateman@i-93f6y1io tomcat1]$ ls -l
总用量 200944
-rw-rw-r-- 1 gateman gateman 930 2月 24 01:07 Dockerfile
-rw-rw-r-- 1 gateman gateman 195337531 2月 23 22:09 jdk8.tar.gz
-rw-rw-r-- 1 gateman gateman 0 2月 23 22:15 readme.txt
-rw-rw-r-- 1 gateman gateman 10424147 2月 23 23:23 tomcat8.tar.gz
drwxrwxr-x 3 gateman gateman 19 2月 23 22:53 usr
[gateman@i-93f6y1io tomcat1]$
第二步 创建挂载的日志目录
因为我们用的容器, 就不打算暴露webapps了, 只暴露日志目录方便trouble shooting.
[gateman@i-93f6y1io tomcat1]$ pwd
/home/gateman/docker/dockerfile/tomcat1
[gateman@i-93f6y1io tomcat1]$ mkdir -p /usr/local/Tomcat/logs
第三步 编写DockerFile
FROM centos #基于 centos 必须
MAINTAINER nvd11@163.com #作者信息RUN groupadd -r rad && useradd -r -u 1000 -g rad gateman #创建启动tomcat的用户, uid 一定要与宿主机的对应用户一样, 否则生成logs无读权限
RUN useradd -r -g rad radrel #创建另1个用户COPY readme.txt /usr/local/readme.txt #Copy 文件到容器ADD jdk8.tar.gz /usr/local/ #ADD 相对于 COPY 有自动解压的功能
ADD tomcat8.tar.gz /usr/local/ #ADD 相对于 COPY 有自动解压的功能RUN chown -R radrel:rad /usr/local/Tomcat8 #令gateman accoun有启动tomcat的权限
RUN chown -R radrel:rad /usr/local/java-8-oracle
RUN chmod -R 755 /usr/local/Tomcat8
RUN chmod -R 755 /usr/local/java-8-oracle
RUN chmod g+w /usr/local/Tomcat8/logs #令gateman accoun有写log权限
RUN chmod g+w /usr/local/Tomcat8/work #令gateman 有些work 文件权限(jsp 临时classes)
RUN rm -f /usr/local/Tomcat8/logs/catalina.out #删除原来的log文件, 万一原文件由其他用户创建就无法写入
RUN rm -rf /usr/local/Tomcat8/work/* #https://www.cnblogs.com/meitian/p/9078980.htmlENV MYPATH /usr/local #定义环境变量
WORKDIR $MYPATH #设置容器工作目录ENV JAVA_HOME /usr/local/java-8-oracle
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/Tomcat8
ENV CATALINA_BASH /usr/local/Tomcat8
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/binEXPOSE 8080 #令容器对外暴露端口USER gateman #使用gateman账号启动tomcat 否则tomcat 由root启动, 那么挂载在外面的日志文件是root的, 无法查看
CMD /usr/local/Tomcat8/bin/startup.sh && tail -F /usr/local/Tomcat8/logs/catalina.out
第四步 创建镜像
docker build -t rad_tomcat1:0.9 .
第五步 运行镜像
docker run -d -p 3351:8080 -v /home/gateman/docker/dockerfile/tomcat1/usr/local/Tomcat/logs:/usr/local/Tomcat8/logs --name rad_tomcat1 rad_tomcat1:0.9
Docker 创建1个自己的Tomcat 镜像相关推荐
- Docker创建Dockerfile脚本构建jdk1.8镜像并启动容器示例
- docker制作tomcat镜像并部署war包
模拟面试小白: 需求:有一台没有网络的服务器,使用docker部署war包,没有tomcat镜像,限时30分钟. 小白:没网部署war包干啥,是不是工作不饱和让你们太闲了. 我:傻瓜,怪我没表达清楚, ...
- Docker创建 tomcat/weblogic 集群
安装 tomcat 镜像 准备好需要的 jdk.tomcat 等软件放到 home 目录下面,启动一个容器 docker run -t -i -v /home:/opt/data --name mk_ ...
- Docker Review - dockerfile 实战_使用dockerfile制作tomcat镜像
文章目录 Pre Docker 官方镜像 Dockerfile dockerfile制作tomcat镜像 准备软件 编写Dockerfile文件 dockerfile构建镜像 启动镜像 测试访问tom ...
- 使用Dockerfile创建一个tomcat镜像
docker已经看了有一段时间了,对镜像和容器也有了一个大致了解,制作一个tomcat镜像 1.首先下载linux环境的tomcat,并解压至tomcat目录 ls /tomcat apache-to ...
- 用python批量创建docker_「docker实战篇」python的docker-docker镜像的创建使用dockerfile(3...
从上篇docker commit学习可以了解到,镜像的定制其实每一层添加的配置和文件,如果把每一层的修改配置,修改文件,都写入脚本,用这个脚本构建定制镜像,无法重复的问题,镜像构建透明性的问题,体积的 ...
- python docker实战_「docker实战篇」python的docker-docker镜像的创建使用dockerfile(3
从上篇docker commit学习可以了解到,镜像的定制其实每一层添加的配置和文件,如果把每一层的修改配置,修改文件,都写入脚本,用这个脚本构建定制镜像,无法重复的问题,镜像构建透明性的问题,体积的 ...
- Docker——Dockerfile(构建自己的CentOS镜像和Tomcat镜像)并打包镜像发布上线
Dockerfile(构建自己的CentOS镜像和Tomcat镜像)并打包镜像发布上线 Dockerfile概述 Dockerfile构建过程 Dockerfile指令说明 实战:构建自己的CentO ...
- Docker安装Tomcat镜像并部署web项目简述
一.安装Tomcat 1.查找Docker Hub上的tomcat镜像 docker search tomcat 2.拉取官方的镜像 docker pull tomcat 等待下载完毕,需要一些时间. ...
最新文章
- 深度研究自然梯度优化,从入门到放弃 | Deep Reading
- revit如何根据坐标进行画线_护肤干货丨抗衰老的护肤品有哪些?如何根据成分进行挑选?(1)...
- bzoj2618 [Cqoi2006]凸多边形
- c++ 删除二叉树的子树_平衡二叉树
- codeforces 59A-C语言解题报告
- uniitest怎么传参数
- 用PHPnow搭建PHP+MYSQL网站开发环境
- 简述相关与回归分析的关系_分类数据与分类数据的相关关系分析
- 02 Toolbar的使用
- I2c-tools工具使用及调试
- 《分布式系统概念与设计》读书笔记(第零章)
- 基于电子商务网站开发的项目管理计划设计
- 国内ERP系统和SAP系统架构存在哪些差异?
- C语言手写爱心-还原最新热剧撩妹代码
- android 自定义特效,Android 自定义控件~流光特效
- 华为云服务器无法使用smtp发送邮件
- MySQL引擎的理解
- kali下的免杀之veil安装步骤
- uC/OS iii(三)任务管理之任务状态
- 益聚星荣:UP主捡块石头搓出个CPU?恕我直言,人类做不到