docker制作tomcat鏡像
阿新 • • 發佈:2018-10-30
art detail cat rac eba server 最大 dep 鏡像文件
準備cestos鏡像、tomcat、jdk
cestos是docker pull下來的
在/opt/下創建docker:mkdir -p /opt/docker
把tomcat和jdk解壓到docker目錄下,分別命名為tomcat和jdk
刪除jdk文件夾下多余文件, 降低build的鏡像大小
rm -rf /z/docker/jdk/*src.zip /z/docker/jdk/lib/missioncontrol /z/docker/jdk/lib/visualvm /z/docker/jdk/lib/*javafx* /z/docker/jdk/jre/lib/plugin.jar /z/docker/jdk/jre/lib/ext/jfxrt.jar /z/docker/jdk/jre/bin/javaws /z/docker/jdk/jre/lib/javaws.jar /z/docker/jdk/jre/lib/desktop /z/docker/jdk/jre/plugin /z/docker/jdk/jre/lib/deploy* /z/docker/jdk/jre/lib/*javafx* /z/docker/jdk/jre/lib/*jfx* /z/docker/jdk/jre/lib/amd64/libdecora_sse.so /z/docker/jdk/jre/lib/amd64/libprism_*.so /z/docker/jdk/jre/lib/amd64/libfxplugins.so /z/docker/jdk/jre/lib/amd64/libglass.so /z/docker/jdk/jre/lib/amd64/libgstreamer-lite.so /z/docker/jdk/jre/lib/amd64/libjavafx*.so /z/docker/jdk/jre/lib/amd64/libjfx*.so
創建Dockerfile文件
#使用docker cestOs鏡像 FROM docker.io/centos #作者信息 MAINTAINER guuyoog <gy> LABEL Description="This image is used to serve tomcat 8 whit jdk8" Version="1.0" #在鏡像中創建目錄 #把jdk和tomcat添加到裏面 RUN mkdir -p /opt/jdk1.8.0_181 ADD jdk /opt/jdk1.8.0_181 RUN mkdir -p /opt/tomcat-8.5.32 ADD tomcat /opt/tomcat-8.5.32 #添加環境變量 ENV JAVA_HOME /opt/jdk1.8.0_181 ENV CATALINA_HOME /opt/tomcat-8.5.32 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin ENV JAVA_OPTS "$JAVA_OPTS -server -XX:+UseParallelOldGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/tomcat-8.5.32/dump/dump.hprof -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/opt/tomcat-8.5.32/dump/heap_trace.txt -Duser.timezone=GMT+08" #工作區域 WORKDIR /opt/tomcat-8.5.32 #暴露端口 EXPOSE 8080 #啟動時運行tomcat CMD ["catalina.sh", "run"]
開始構建docker鏡像文件
docker build -t guuyoog/centos-jdk8-tomcat8:1.0 . -t 設置tag名稱, 命名規則registry/image:tag . 表示使用當前目錄下的Dockerfile文件
如果沒有問題的話docker images能查看到新建的鏡像
導出鏡像 docker save -o jdk8-tomcat8.tar <鏡像ID>
導入鏡像 docker load < jdk8-tomcat8.tar
docker images時可能會看不到REPOSITORY 和 tag,則用docker tag 639d56a4231a taomeng/jdk8-tomcat8:1.0賦值
創建容器
sudo docker run -it --name tomcat --net=host -p 8080:8080 -m 1024m \ #設置容器使用內存最大值; --restart=always \ #重啟機制 --privileged=true \ #使用該參數,container內的root擁有真正的root權限 -v /opt/tomcat/setenv.sh:/opt/tomcat-8.5.32/bin/setenv.sh -v /opt/tomcat/tomcat-users.xml:/opt/tomcat-8.5.32/conf/tomcat-users.xml -v /opt/tomcat/server.xml:/opt/tomcat-8.5.32/conf/server.xml -v /opt/tomcat/logs:/opt/tomcat-8.5.32/logs -v /opt/tomcat/output:/opt/tomcat-8.5.32/output -v /opt/tomcat/webapps:/opt/tomcat-8.5.32/webapps -v /opt/tomcat/dump:/opt/tomcat-8.5.32/dump -d taomeng/jdk8-tomcat8:1.0
docker制作tomcat鏡像