使用Linux alpine和Oracle JRE6构建tomcat6镜像及应用容器化
发布时间:2020-12-14 01:59:21 所属栏目:Linux 来源:网络整理
导读:使用Linux alpine和Oracle JRE6构建tomcat6镜像及应用容器化 Dockerhub上的Tomcat最小版本是7.x,公司的老应用必须使用Tomcat6.x,另外因Oracle JDK版权问题。在Dockerhub上的JDK镜像都是使用Open JDK。公司要求使用Oracle JDK。 SO,找不到合适的,得自己动
使用Linux alpine和Oracle JRE6构建tomcat6镜像及应用容器化
一、构建jre6-alpine镜像 * mkdir /home/zxl_work/dockerfile/jdk6 && cd /home/zxl_work/dockerfile/jdk6 * 上传jdk压缩包jre-6u35-linux-x64.bin * touche Dockerfile,并将下面的内容拷贝进Dockerfile * chmod +x jre-6u35-linux-x64.bin * docker build -t zxl/jre6-alpine:v1.0 . 2.Dockerfile如下: FROM crownpeak/alpine-glibc:2.23-r3 LABEL maintainer="zxl <[email?protected]>" provider="xxx Technologies,Ltd." COPY jre-6u35-linux-x64.bin /usr/local/jre1.6.0_35.bin ENV JAVA_VERSION="1.6.0_35" JAVA_HOME="/usr/local/jre1.6.0_35" JRE_HOME="/usr/local/jre1.6.0_35" PATH="${PATH}:/usr/local/jre1.6.0_35/bin" LANG=zh_CN.UTF-8 RUN cd /usr/local/ && yes | ./jre1.6.0_35.bin && rm -rf /usr/local/jre1.6.0_35.bin /usr/local/jre1.6.0_35/plugin /usr/local/jre1.6.0_35/bin/javaws /usr/local/jre1.6.0_35/bin/keytool /usr/local/jre1.6.0_35/bin/orbd /usr/local/jre1.6.0_35/bin/pack200 /usr/local/jre1.6.0_35/bin/policytool /usr/local/jre1.6.0_35/bin/rmid /usr/local/jre1.6.0_35/bin/rmiregistry /usr/local/jre1.6.0_35/bin/servertool /usr/local/jre1.6.0_35/bin/tnameserv /usr/local/jre1.6.0_35/bin/unpack200 /usr/local/jre1.6.0_35/lib/javaws.jar /usr/local/jre1.6.0_35/lib/deploy* /usr/local/jre1.6.0_35/lib/desktop /usr/local/jre1.6.0_35/lib/*javafx* /usr/local/jre1.6.0_35/lib/*jfx* /usr/local/jre1.6.0_35/lib/amd64/libdecora_sse.so /usr/local/jre1.6.0_35/lib/amd64/libprism_*.so /usr/local/jre1.6.0_35/lib/amd64/libfxplugins.so /usr/local/jre1.6.0_35/lib/amd64/libglass.so /usr/local/jre1.6.0_35/lib/amd64/libgstreamer-lite.so /usr/local/jre1.6.0_35/lib/amd64/libjavafx*.so /usr/local/jre1.6.0_35/lib/amd64/libjfx*.so /usr/local/jre1.6.0_35/lib/ext/jfxrt.jar /usr/local/jre1.6.0_35/lib/ext/nashorn.jar /usr/local/jre1.6.0_35/lib/oblique-fonts /usr/local/jre1.6.0_35/lib/plugin.jar 二、构建tomcat6镜像 * mkdir /home/zxl_work/dockerfile/tomcat6 && cd /home/zxl_work/dockerfile/tomcat6 * 上传apache-tomcat-6.0.26.tar.gz * touche Dockerfile,并将下面的内容拷贝进Dockerfile * docker build -t zxl/tomcat6-alpine:v1.0 . 2.Dockerfile如下: FROM zxl/jre6-alpine:v1.0 LABEL maintainer="zxl <[email?protected]>" provider="xxx Technologies,Ltd." ENV CATALINA_HOME="/usr/local/tomcat" PATH="${PATH}:/usr/local/tomcat/bin" WORKDIR $CATALINA_HOME ADD apache-tomcat-6.0.26.tar.gz /tmp/apache-tomcat-6.0.26 RUN mv /tmp/apache-tomcat-6.0.26/apache-tomcat-6.0.26/* /usr/local/tomcat && rm /usr/local/tomcat/bin/*.bat VOLUME ["/usr/local/tomcat/logs"] EXPOSE 8080 CMD ["catalina.sh","run"] 三、备注: 2.附应用的Dockfile FROM zxl/tomcat6-alpine:1.0 LABEL maintainer="zxl <[email?protected]>" provider="xxx Technologies,Ltd." COPY target/web.war /usr/local/tomcat/webapps 3.一些说明 3.1 tomcat容器启动命令说明 --后台运行tomcat容器 docker run -d --name tomcat zxl/tomcat6-alpine:v1.0 --将主机的8088端口与tomcat容器端口进行映射 docker run -p 8088:8080 --name tomcat zxl/tomcat6-alpine:v1.0 --挂载日志目录到/data/docker/tomcat/logs docker run -v /data/docker/tomcat/logs:/usr/local/tomcat/logs --name tomcat zxl/tomcat6-alpine:v1.0 --将主机的系统时间挂载到tomcat容器 docker run -v /etc/localtime:/etc/localtime:ro --name tomcat zxl/tomcat6-alpine:v1.0 --设置tomcat容器默认时区为上海时区 docker run -v /etc/localtime:/etc/localtime:ro -e TZ="Asia/Shanghai" --name tomcat zxl/tomcat6-alpine:v1.0 --查看所有tomcat容器命令: docker ps -a | grep tomcat --删除所有tomcat容器命令 docker rm -f `docker ps -a | grep tomcat | awk ‘{print $1}‘` --进入tomcat容器 docker exec -it tomcat容器ID sh --完整的tomcat启动命令如下:暴露8088端口;挂载日志目录;与主机时间同步;设置上海时区; docker run -d -p 8088:8080 --name tomcat -v /data/docker/tomcat/logs1:/usr/local/tomcat/logs -v /etc/localtime:/etc/localtime:ro -e TZ="Asia/Shanghai" zxl/tomcat6-alpine:v1.0 3.2 日志挂载目录说明: 即使不使用-v 指定挂载tomcat的logs目录。tomcat的logs目录也会挂载在类似这样的目录: /home/imagestorage/volumes/7198cfc8d509e18f2ca83ef57c2908dfb23b9e75f96cad1ccb2da4b7cf0074e3/_data 因为在tomcat的Dockerfile用了VOLUME为容器设置了一个挂载点。但注意的是不同的docker版本,可能目录不同。 如果使用了-v指定挂载tomcat的logs目录,则日志文件会挂载在-v指定的主机目录,不会再挂在类似以下目录。 /home/imagestorage/volumes/7198cfc8d509e18f2ca83ef57c2908dfb23b9e75f96cad1ccb2da4b7cf0074e3/_data (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |