使用Dockerfile创建带tomcat的Centos Docker镜像

(1)准备工作:
  创建tomcat7.0_jdk1.6文件夹,从www.oracle.com上下载sun_jdk 1.6压缩包,解压为jdk目录。
  创建Dockerfile和run.sh文件
[[email protected] ~]# mkdir tomcat7.0_jdk1.6
[[email protected] ~]# cd tomcat7.0_jdk1.6/
[[email protected] tomcat7.0_jdk1.6]# touch Dockerfile run.sh
[[email protected] tomcat7.0_jdk1.6]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.zip
--2017-11-27 22:31:47--  https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.zip
Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.6.178, 2402:f000:1:416:101:6:6:177
Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.6.178|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9588812 (9.1M) [application/zip]
Saving to: ‘apache-tomcat-7.0.82.zip’

100%[================================================================================================================>] 9,588,812   3.38MB/s   in 2.7s

2017-11-27 22:31:50 (3.38 MB/s) - ‘apache-tomcat-7.0.82.zip’ saved [9588812/9588812]
解压后,tomcat7.0_jdk1.6目录底下应如下所示(多余的压缩包已经被删除):

[[email protected] tomcat7.0_jdk1.6]# rz -y 上传jdk-6u45-linux-x64.bin包
[[email protected] tomcat7.0_jdk1.6]# chmod 755 jdk-6u45-linux-x64.bin
[[email protected] tomcat7.0_jdk1.6]# ./jdk-6u45-linux-x64.bin
[[email protected] tomcat7.0_jdk1.6]# ls
apache-tomcat-7.0.82  apache-tomcat-7.0.82.zip Dockerfile  jdk1.6.0_45  jdk-6u45-linux-x64.bin  jdk-6u45-linux-x64.zip  run.sh
[[email protected] tomcat7.0_jdk1.6]# rm -f jdk-6u45-linux-x64.bin jdk-6u45-linux-x64.zip apache-tomcat-7.0.82.zip
[[email protected] tomcat7.0_jdk1.6]# ls
apache-tomcat-7.0.82  Dockerfile  jdk1.6.0_45  run.sh

(2)编写Dockerfile文件

[[email protected] tomcat7.0_jdk1.6]# cat Dockerfile

#设置继承来自镜像

FROM docker.io/centos:latest

#下面是一些创建这的基本信息

MAINTAINER waitfish from dockerpool.com

#设置环境变量,所以操作都是非交互式的

ENV DEBIAN_FRONTEND noninteractive

RUN echo "Asia/Shanghai" > /etc/timezone

#注意这里要更改系统的时区设置,因为在Web应用中经常会用到时区这个系统变量,默认的centos会让你的应用程序发生不可思议的效果

#设置tomcat对的环境变量,若读者有其他的环境变量需要设置,也可以在这里添加:

ENV CATALINA_HOME /tomcat

ENV JAVA_HOME /jdk

#复制tomcat和jdk文件到镜像中

ADD apache-tomcat-7.0.82 /tomcat

ADD jdk1.6.0_45 /jdk

#ADD create_tomcat_admin_user.sh /create_tomcat_admin_user.sh

ADD run.sh /run.sh

RUN chmod +x /*.sh

RUN chmod +x /tomcat/bin/*.sh

EXPOSE 8080

CMD ["/run.sh"]

(3)建立tomcat7.0:jdk1.6镜像

[[email protected] tomcat7.0_jdk1.6]# docker build -t tomcat7.0:jdk1.6 .

[[email protected] tomcat7.0_jdk1.6]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

tomcat7.0           jdk1.6              581265694089        6 seconds ago       439.8 MB

......

(4)启动一个tomcat容器进行测试

[[email protected] tomcat7.0_jdk1.6]# docker run -d -P tomcat7.0:jdk1.6

ac6d662434ffb9435740d0f452599e12349903f4387775155f0d7e057eac6a33

(5)查看映射的端口信息:

[[email protected] tomcat7.0_jdk1.6]# docker ps

CONTAINER ID   IMAGE         COMMAND     CREATED       STATUS         PORTS              NAMES

ac6d662434ff tomcat7.0:jdk1.6  "/run.sh"     21 minutes ago  Up 21 minutes  0.0.0.0:32820->8080/tcp    thirsty_montalcini

(6)在本地使用浏览器登录Tomcat管理界面,访问10.0.0.10:32820,如下图所示:

----------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------------------

tomcat设置密码登录

(1)更改Dockerfile配置文件

[[email protected] tomcat7.0_jdk1.6]# cat Dockerfile

#设置继承来自镜像

FROM docker.io/centos:latest

#下面是一些创建这的基本信息

MAINTAINER waitfish from dockerpool.com

#设置环境变量,所以操作都是非交互式的

ENV DEBIAN_FRONTEND noninteractive

RUN echo "Asia/Shanghai" > /etc/timezone #&& \

#dpkg-reconfigure -f noninteractive tzdata

#注意这里要更改系统的时区设置,因为在Web应用中经常会用到时区这个系统变量,默认的centos会让你的应用程序发生不可思议的效果

#安装跟tomcat用户认证相关的软件<-------------修改处

RUN yum update

RUN yum install -y wget pwgen ca-certificates && yum clean all

#设置tomcat对的环境变量,若读者有其他的环境变量需要设置,也可以在这里添加:

ENV CATALINA_HOME /tomcat

ENV JAVA_HOME /jdk

#复制tomcat和jdk文件到镜像中

ADD apache-tomcat-7.0.82 /tomcat

ADD jdk1.6.0_45 /jdk

#<------修改处

ADD create_tomcat_admin_user.sh /create_tomcat_admin_user.sh

ADD run.sh /run.sh

RUN chmod +x /*.sh

RUN chmod +x /tomcat/bin/*.sh

EXPOSE 8080

CMD ["/run.sh"]

*********************************************************************************************

附件:

apache-tomcat-7.0.82 http://down.51cto.com/data/2368971

jdk-6u45-linux-x64.bin http://down.51cto.com/data/2369015

时间: 2024-10-11 23:44:21

使用Dockerfile创建带tomcat的Centos Docker镜像的相关文章

【系列5】使用Dockerfile创建带weblogic的Centos Docker镜像

Weblogic是一个基于Java EE架构的中间件(应用服务器),WebLogic由Oracle公司维护. ? ?WebLogic是用于开发.集成.部署和管理大型分布式Web应用.网络应用和数据库应用的Java应用服务器.是商业市场上最主要的Java (J2EE)应用服务器软件之一,也是世界上第一个成功商业化的J2EE应用服务器. ? ?与Tomcat不同的是,Weblogic是一个商业软件,所以需要有授权才能使用.不过,Oracle公司允许开发者在开发模式下使用Weblogic.如果开发者需

【系列6】使用Dockerfile创建带LAMP的Centos Docker镜像

LAMP值的Linux (操作系统).ApacheHTTP服务器.MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的组合方案,一般很适合用来建立Web服务器环境.  ① 下载LAMP镜像:   下面介绍如何使用Docker来搭建一个包含LAMP组件的容器.[[email protected] ~]# docker search -s 10 lampFlag --stars has been deprecated, use --filter=stars=

通过Dockerfile创建支持SSH服务的docker镜像(centos、Ubuntu)

centos: mkdir centos-ssh vim centos-ssh/Dockerfile FROM centos MAINTAINER blog.rootr.cn [email protected] RUN yum install -y openssh-server RUN mkdir /var/run/sshd RUN ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N '' && \ ssh-keygen

使用Dockerfile创建带Apache服务的Centos Docker镜像1

这里将展示使用Dockerfile来创建带Apache服务的Docker镜像的具体过程.  准备工作:  首先,创建一个apache_centos工作目录,在其中[[email protected] ~]# mkdir apache_centos && cd apache_centos[[email protected] apache_centos]# touch Dockerfile run.sh[[email protected] apache_centos]# mkdir sampl

创建带Tomcat服务的Centos Docker镜像

Tomacat服务器是一个免费的开源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下普遍使用,是开发和高度JSP程序的首选. 下面我就分步骤向大家介绍如何创建带Nginx服务的Centos Docker镜像. 基础镜像: [root@localhost ~]# docker images REPOSITORY     TAG       IMAGE ID      CREATED      VIRTUAL SIZE sshd    dockerfile  

「五」创建一个带 tomcat 服务的基础镜像(修订版)

Tomcat Tomcat 简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求.实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运

创建超小的Golang docker 镜像

原文: http://colobu.com/2015/10/12/create-minimal-golang-docker-images/ 本文对于创建超小的镜像非常有用 Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源.正如DockerPool在免费Docker电子书Docker -- 从入门到实践中这样提到的: 作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具

使用Dockerfile创建带Apache服务的Centos Docker镜像

在宿主机上准备的文件清单: Dockerfile #启动ssh和apache服务的角本 run.sh 以上文件都放到/root/apache_centos目录下 mkdir -p /root/apache_centos cd /root/apache_centos 基础镜像:以镜像centos为基础的开放SSH服务的镜像 [root@localhost apache_centos]# docker images REPOSITORY      TAG          IMAGE ID    

【系列6】使用Dockerfile创建带mysql5.7的Centos Docker镜像1

1.进入Linux后,使用Docker命令下载MySQL,命令如: docker pull mysql:5.7 运行该命令后,则会显示以下日志: [[email protected] ~]# docker pull mysql:5.7 5.7: Pulling from library/mysql ad74af05f5a2: Pull complete  0639788facc8: Pull complete  de70fa77eb2b: Pull complete  724179e94999: