使用Dockerfile制作tomcat镜像
博客专区 > nero233 的博客 > 博客详情
使用Dockerfile制作tomcat镜像
nero233 发表于2年前
使用Dockerfile制作tomcat镜像
  • 发表于 2年前
  • 阅读 83
  • 收藏 2
  • 点赞 0
  • 评论 1

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 在ubuntu14.04基础上安装jdk以及tomcat

网上很多教程都是在线安装,但是有时在线安装虚拟机网络很不稳定,导致中途失败。所以参考一些网上教程使用本地安装。

工具:

Docker软件

ubuntu基础镜像(直接在线pull一个就好,也可以使用centos,都一样)

apache-tomcat-8.5.3.tar.gz  

jdk-8u91-linux-x64.tar.gz

准备:

创建一个文件夹,放入jdk,tomcat,以及Dockerfile文件。由于脚本内地址都是以Dockerfile目录的相对地址,所以为了方便我们放在同一个文件夹下。

我这里放在/usr/docker/tomcat/文件夹下。如图:

Dockerfile文件:

FROM  ubuntu:14.04
MAINTAINER    sb

#把java与tomcat添加到容器中
ADD apache-tomcat-8.5.3.tar.gz /usr/local/
ADD jdk-8u91-linux-x64.tar.gz /usr/local/
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_91
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.3
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.3
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

#容器运行时监听的端口
EXPOSE  8080
#CMD ["startup.sh", "run"]

我们不在Dockerfile之中使用CMD指令,装完后从容器中启用。

build:

docker build -t sb/tomcat .

开启容器:

docker run -i-t-p 18080:8080 sb/tomcat

进入容器之后:

./usr/local/apache-tomcat-8.5.3/bin/startup.sh

此时tomcat开启,由于我是装完后回忆写的,所以没截图。

可以将这个容器保存为镜像,供以后使用:

docker commit -m "sb's new file"  ContainerID  sb/tomcat:ubuntu_14.04

测试:

可以在宿主机上面开启浏览器,http://ip:18080

注意,这里的ip是容器的映射ip,不是宿主机的ip,可以进入容器ifconfig查看一下,我的是127.0.0.1。

几点疑问,有知道可以 解答一下:

1.有时在执行dockerfile脚本时,报出找不到tar命令,一直安装中断,但有时不会,是基础镜像关闭了相关命令还是虚拟机不稳定的原因?

2.在使用已经解压的jdk以及tomcat文件夹来直接ADD进指定目录时,会发生文件丢失的现象,如没有startup.sh没了,虽然脚本成功执行,但是镜像是无法工作的?

3.使用docker run -d ...命令开启后台容器时,docker ps无法查出容器,-a后可以查出,也就是刚创建容器就停了,是因为镜像本身就无法运行么,导致自行退出?

 

 

 

 

 

 

 

标签: docker tomcat
共有 人打赏支持
粉丝 0
博文 8
码字总数 5969
评论 (1)
zipon
为什么把java和tomcat的压缩包传进容器就可以了??不需要进到解压??
×
nero233
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: