使用Dockerfile制作tomcat镜像

前言:安装好docker,简单熟悉下命令后,现在学习下以Dockerfile自定义image。

Docker之Dockerfile语法详解

1. 建立简单文件服务器

  • 这个文件服务器给下面的 Dockerfile 提供 tomcat和jdk下载地址
> cat /data/scripts/simple_ftp_py.sh 
#!/bin/bash

ftp_dir=/data/packages
ftp_port=1234

cd $ftp_dir
python -m SimpleHTTPServer $ftp_port

> nohuo bash /data/scripts/simple_ftp_py.sh &

查看

ftp

2. 编写Dockerfile

> cat /data/docker/dockerfile/tomcat7/Dockerfile
# bash image
FROM centos

MAINTAINER itimor "itimor@126.com"

# Install JDK 7
COPY jdk-7u79-linux-x64.tar.gz /tmp/jdk-7u79-linux-x64.tar.gz
RUN cd /tmp && tar xf jdk-7u79-linux-x64.tar.gz -C /usr/local/ && rm -rf /tmp/jdk-7u79-linux-x64.tar.gz

ENV JAVA_HOME /usr/local/jdk1.7.0_79
ENV PATH $PATH:/$JAVA_HOME/bin

# Install tomcat7
COPY apache-tomcat-7.0.93.tar.gz /tmp/apache-tomcat-7.0.93.tar.gz
RUN cd /tmp && tar xf apache-tomcat-7.0.93.tar.gz && mv apache-tomcat-7.0.93 /usr/local/tomcat && rm -rf /tmp/apache-tomcat-7.0.93.tar.gz

# Add tomcat.sh
ADD tomcat /etc/init.d/tomcat
RUN chmod 755 /etc/init.d/tomcat

# Expose ports
EXPOSE 8080

# Define default command
ENTRYPOINT /etc/init.d/tomcat start && tail -f /usr/local/tomcat/logs/catalina.out

3. tomcat启动文件

cat /data/docker/dockerfile/tomcat7/tomcat7

#!/bin/bash

export JAVA_HOME=/usr/local/jdk1.8.0_74
export TOMCAT_HOME=/usr/local/tomcat7
  
case $1 in  
start)  
  sh $TOMCAT_HOME/bin/startup.sh  
;;  
stop)  
  sh $TOMCAT_HOME/bin/shutdown.sh  
;;  
restart)  
  sh $TOMCAT_HOME/bin/shutdown.sh  
  sh $TOMCAT_HOME/bin/startup.sh  
;;  
esac  
exit 0 

4. 验证 Dockerfie

执行 Dockerfie

docker build -t 1.1.1.5000/tomcat7-jdk8 .

启动容器并查看tomcat日志

docker run -it -p 8888:8080 --name tomcat7 1.1.1.5000/tomcat7-jdk8

参数说明:

-d 后台运行
-it 前台交互式运行
-p 8888:8080 将宿主机的8888端口映射到容器的8080端口
—name tomcat7 给容器命名为tomcat7

浏览器访问

tomcat7

  • 好了,Dockerfile构建tomcat成功。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录 前言 Dockerfile的书写规则及指令使用方法 创建Dockerfile,构建运行环境 构建镜像 Doc...
    garyond阅读 72,708评论 0 43
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,686评论 15 147
  • docker 部署 标签(空格分隔): docker 系统centos6.8 mini docker 官方文档ht...
    Lisong阅读 705评论 0 1
  • 韩愈自荐信看着挺牛啊哥就是一怪物有水就呼风唤雨,龙行天下没水哥就是一小虫,啥也不事哥做小虫还有一毛病,不爱搭理人你...
    初天晓月阅读 263评论 0 1