Dockerfile构建Tomcat Web服务器

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持。同时,它提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,也可以当作单独的Web服务器使用。

文件版本
tomcat7.0.105
jdk8u60

1.准备工作

创建tomcat7.0_jdk8u60文件夹,从www.oracle.com网站下载jdk ,解压为jdk目录。
创建Dockerfile和run.sh文件:

$ mkdir tomcat7.0_jdk8u60
$ cd tomcat7.0_jdk8u60
$ touch Dockerfile run.sh

下载tomcat,可以到官方网站下载最新的版本,也可以直接使用下面的链接给出的版本:

$ wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.105/bin/apache-tomcat-7.0.105.zip

解压后,目录下文件如下:

$ ls
apache-tomcat-7.0.105  Dockerfile  jdk  run.sh

2.Dockerfile文件和其他脚本文件

Dockerfile文件内容如下:

FROM sshd:dockerfile
MAINTAINER https://blog.csdn.net/weixin_46380571
ENV DEBIAN_FRONTEND noninteractive
RUN echo "Asia/Shanghai" > /etc/timezone && \
    dpkg-reconfigure -f noninteractive tzdata
RUN apt-get install -yq --no-install-recommends wget pwgen ca-certificates && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*
ENV CATALINA_HOME /tomcat
ENV JAVA_HOME /jdk
ADD apache-tomcat-7.0.105 /tomcat
ADD jdk /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"]

创建tomcat用户和密码脚本文件create_tomcat_admin_user.sh文件,内容如下:


#!/bin/bash
if [ -f /.tomcat_admin_created ]; then
	echo "Tomcat 'admin' user already created"
 	exit 0
fi
#generate password

PASS=${TOMCAT_PASS:-$(pwgen -s 12 1)}
_word=$( [ ${TOMCAT_PASS} ] && echo "preset" || echo "random" )
echo "=> Creating and admin user with a ${_word} password in Tomcat"
sed -i -r 's/<\/tomcat-users>//' ${CATALINA_HOME}/conf/tomcat-users.xml
echo '<role rolename="manager-gui"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo '<role rolename="manager-script"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo '<role rolename="manager-jmx"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo '<role rolenaem="admin-gui"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo '<role rolename="admin-script"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo "<user username=\"admin\" password=\"${PASS}\" roles=\"manager-gui,manager-script,manager-jmk,admin-gui, admin-script\"/>" >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo '</tomcat-users>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo "=> Done!"
touch /.tomcat_admin_created

echo "======================================================================================="
echo "You can now configure to this Tomcat server using:"
echo ""
echo "        admin:${PASS}"
echo ""
echo "======================================================================================="

编写run.sh脚本文件:

#!/bin/bash
if [ ! -f /.tomcat_admin_created ]; then
	/create_tomcat_admin_user.sh
fi
/usr/sbin/sshd -D &
exec ${CATALINA_HOME}/bin/catalina.sh run 

3.创建和测试镜像

通过下面的命令创建镜像tomcat7.0.105:jdk8u60

docker build -t tomcat7.0.105:jdk8u60 .
Successfully tagged tomcat7.0.105:jdk8u60
docker run -d -P tomcat7.0.105:jdk8u60
7cbed7167d63dc8c1c23e2166eb3053cb8130968354d5dac4088e274ae46d52c
[root@c7-45 tomcat7.0_jdk1.6]# docker logs 7c
Error response from daemon: Multiple IDs found with provided prefix: 7c
[root@c7-45 tomcat7.0_jdk1.6]# docker logs 7cbed7167d63
=> Creating and admin user with a random password in Tomcat
=> Done!
=======================================================================================
You can now configure to this Tomcat server using:

        admin:6A2Zlr80qAsH

=======================================================================================
[root@c7-45 tomcat7.0_jdk1.6]# docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED              STATUS              PORTS                                                                  NAMES
7cbed7167d63        tomcat7.0.105:jdk8u60            "/run.sh"                About a minute ago   Up About a minute   0.0.0.0:32821->22/tcp, 0.0.0.0:32820->8080/tcp                         friendly_chandrasekhar

访问tomcat界面 本地的32820端口 http://10.0.0.45:32820/,出现如下界面:
在这里插入图片描述
输入从docker logs 中得到的密码,
在这里插入图片描述
成功的进到管理界面:
在这里插入图片描述

4.相关资料

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云原生解决方案

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值