dockerfile制作镜像: jdk+tomcat

1. 编写dockerfile
FROM  centos:7.2.1511
MAINTAINER zhu <zhu@126.com>


#创建目录
RUN mkdir -p /xx/java/jdk1.8.0_151
#把当前目录下的jdk文件夹添加到镜像
ADD jdk1.8.0_151 /xx/java/jdk1.8.0_151


#创建tomcat目录
RUN mkdir -p /xx/apache-tomcat-7.0.82
#把当前目录下的tomcat文件夹添加到镜像
ADD apache-tomcat-7.0.82 /xx/apache-tomcat-7.0.82


#添加环境变量
ENV JAVA_HOME=/xx/java/jdk1.8.0_151
ENV CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar
ENV PATH=$PATH:$JAVA_HOME/bin
ENV CATALINA_HOME=/xx/apache-tomcat-7.0.82
ENV PATH=$PATH:${CATALINA_HOME}/bin


#暴露8080端口
EXPOSE 8080

CMD ["/xx/apache-tomcat-7.0.82/bin/catalina.sh","run"]

CMD 必须是此写法。其他CMD bash  xx.sh也是不好使

而且必须catalina.sh,换成startup.sh也是不好使。

docker logs 容器id 查看容器启动日志

原因:

catalina.sh中

 touch "$CATALINA_OUT"
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
      -Djava.security.manager \
      -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"


  else
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
      -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"


  fi

去掉以上红色部分,就可以用startup.sh了

CMD bash /daas/apache-tomcat-7.0.82/bin/startup.sh

也ok了

2. 生成镜像
docker build -t  自定义镜像名字:tag .
例如:
docker build -t  jdk1.8.tomcat7:0.0.1 .




3. 运行
docker run  --name zcy1  -d -p 8020:8080 720902d110bc

验证是否启动成功

docker ps 

如果有就是启动成功,否则失败,需要删除容器,删除镜像,重新制作

docker rm 容器id

docker rmi 镜像


4.验证
访问ip:8020
出现tomcat 的页面


5. 调试dockerfile
进入容器,查看dockerfile中操作是否在容器中生效
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值