需求:
用dockerfile制作一个个性化的tomcat镜像,比如给一个基本tomcat镜像添加session共享,设置中央时区等个性化设置。
dockerfile:
#基础镜像为harbor上pull下来的基础镜像 from reg.dynamicharbor.com/web/tomcat:8.5-jre8-alpine #设置环境变量 ENV WORK_PATH /usr/local/tomcat #删除/usr/local/tomcat/conf下面的相关xml文件 RUN rm $WORK_PATH/conf/context.xml RUN rm $WORK_PATH/conf/web.xml RUN rm $WORK_PATH/conf/server.xml #替换成我们本地已经设置好的配置文件(将这些文件放在dockerfile同一目录下) COPY ./context.xml $WORK_PATH/conf COPY ./web.xml $WORK_PATH/conf COPY ./server.xml $WORK_PATH/conf COPY ./redis-data-cache.properties $WORK_PATH/conf COPY ./commons-logging-1.2.jar $WORK_PATH/lib COPY ./commons-pool2-2.4.2.jar $WORK_PATH/lib COPY ./jedis-2.9.0.jar $WORK_PATH/lib COPY ./tomcat-cluster-redis-session-manager-2.0.2.jar $WORK_PATH/lib #设置中央时区(上海) RUN apk update && apk add curl bash tree tzdata \ && cp -r -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo -ne "Alpine Linux 3.4 image. (`uname -rsv`)\n" >> /root/.built
具体操作步骤:
1、将相关文件(jar/xml/dockerfile)放在node节点服务器上
2、进入当前目录:
cd /home/examtomcat
制作docker镜像:
docker build -t mytomcat:1.0 .
3、查看制作好的镜像:
docker images
4、运行该镜像:
docker run -it -d -- mytomcat:1.0 /bin/sh
5、查看运行的容器:
docker ps
6、进入该容器:(775...是容器ID)
docker exec -it 775c7c9ee1e1 /bin/bash
7、将该容器推到harbor上:
登陆harbor:
docker login reg.dynamicharbor.com
打tag,推上去:
docker tag mytomcat:1.0 (镜像名 )reg.dynamicharbor.com/web/mytomcat:1.0(自己命名) docker push reg.dynamicharbor.com/web/mytomcat:1.0
自定义镜像制作完成。