基础镜像

注意:每次安装的jdk版本和路径可能不一样
  1. echo "*" > .dockerignore
  2. vi Dockerfile
  3. FROM centos:7
  4. MAINTAINER "Geray <1690014753@qq.com>"
  5. RUN yum -y install telnet wget iproute net-tools kde-l10n-Chinese reinstall glibc-common && \
  6. # 安装jdk
  7. # yum -y install java-1.8.0-openjdk && \
  8. yum -y install java-1.8.0-openjdk-devel.x86_64 && \
  9. yum clean all && \
  10. rm -rf /var/cache/yum/* && \
  11. localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 && \
  12. cat /dev/null > /etc/locale.conf && echo "LC_ALL=\"zh_CN.UTF-8\"" > /etc/locale.conf
  13. #env
  14. ENV TZ "Asia/Shanghai"
  15. #ENV LANG en_US.UTF-8
  16. ENV LANG zh_CN.UTF-8
  17. #声明CATALINA_HOME环境变量
  18. ENV CATALINA_HOME /usr/local/tomcat
  19. #将Tomcat下的bin路径加入到PATH环境变量中。
  20. ENV PATH $CATALINA_HOME/bin:$PATH
  21. #Tomcat相关文件的版本。
  22. ENV TOMCAT_MAJOR 8
  23. ENV TOMCAT_VERSION 8.5.69
  24. #Tomcat相关文件下载地址
  25. ENV TOMCAT_TGZ_URL "https://www.apache.org/dyn/closer.cgi?action=download&filename=tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz"
  26. #下载验证文件
  27. #ENV TOMCAT_ASC_URL https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc
  28. #执行命令
  29. RUN set -x && \
  30. mkdir -p $CATALINA_HOME && \
  31. wget -O tomcat.tar.gz $TOMCAT_TGZ_URL && \
  32. #wget -O tomcat.tar.gz.asc "$TOMCAT_ASC_URL" && \
  33. tar -xvf tomcat.tar.gz --strip-components=1 -C $CATALINA_HOME && \
  34. # 禁用jdk随机数
  35. #sed -i '1a JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom"' $CATALINA_HOME/bin/catalina.sh && \
  36. echo 'JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom"' > $CATALINA_HOME/bin/setenv.sh && \
  37. rm -rf $CATALINA_HOME/bin/*.bat && \
  38. rm -rf $CATALINA_HOME/webapps/* && \
  39. rm -rf tomcat.tar.gz* && \
  40. mkdir -p $CATALINA_HOME/webapps/ROOT && \
  41. echo "ok" > $CATALINA_HOME/webapps/ROOT/index.html
  42. #指定RUN、CMD、ENTRYPOINT命令的当前工作路径
  43. WORKDIR $CATALINA_HOME
  44. #暴露8080端口
  45. EXPOSE 8080
  46. #容器启动时执行的命令。
  47. CMD ["catalina.sh", "run"]

根据要求生产环境所需的镜像

增加的基础命令:

scp : yum -y install openssh-clients

unzip:yum -y install unzip zip

添加agent

需要添加jdk证书:

根证书:

jdk根证书问题:https://www.yuque.com/geray-alxoc/cl987x/hvamds

证书问题解决办法.docx

  1. vi .dockerignore
  2. *
  3. !agent.zip
  4. !UCA-RSA-Non-Public-CA-G1.cer
  5. vi Dockerfile
  6. FROM centos:7
  7. MAINTAINER "Geray <1690014753@qq.com>"
  8. RUN yum -y install telnet wget unzip zip openssh-clients iproute net-tools kde-l10n-Chinese reinstall glibc-common && \
  9. # 安装jdk
  10. # yum -y install java-1.8.0-openjdk && \
  11. yum -y install java-1.8.0-openjdk-devel.x86_64 && \
  12. yum clean all && \
  13. rm -rf /var/cache/yum/* && \
  14. localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 && \
  15. cat /dev/null > /etc/locale.conf && echo "LC_ALL=\"zh_CN.UTF-8\"" > /etc/locale.conf
  16. #env
  17. ENV TZ "Asia/Shanghai"
  18. #ENV LANG en_US.UTF-8
  19. ENV LANG zh_CN.UTF-8
  20. #JDK环境变量
  21. ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
  22. ENV JRE_HOME ${JAVA_HOME}/jre
  23. ENV CLASS_PATH .:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JRE_HOME}/lib
  24. ENV PATH $PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
  25. #声明CATALINA_HOME环境变量
  26. ENV CATALINA_HOME /usr/local/tomcat
  27. #将Tomcat下的bin路径加入到PATH环境变量中。
  28. ENV PATH $CATALINA_HOME/bin:$PATH
  29. #Tomcat相关文件的版本。
  30. ENV TOMCAT_MAJOR 8
  31. ENV TOMCAT_VERSION 8.5.69
  32. #Tomcat相关文件下载地址
  33. ENV TOMCAT_TGZ_URL "https://www.apache.org/dyn/closer.cgi?action=download&filename=tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz"
  34. #下载验证文件
  35. #ENV TOMCAT_ASC_URL https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc
  36. #添加agent和证书文件
  37. ADD agent.zip /usr/local
  38. ADD UCA-RSA-Non-Public-CA-G1.cer $JRE_HOME/lib/security
  39. #执行命令
  40. RUN set -x && \
  41. mkdir -p $CATALINA_HOME && \
  42. wget -O tomcat.tar.gz $TOMCAT_TGZ_URL && \
  43. #wget -O tomcat.tar.gz.asc "$TOMCAT_ASC_URL" && \
  44. tar -xvf tomcat.tar.gz --strip-components=1 -C $CATALINA_HOME && \
  45. # 禁用jdk随机数
  46. #sed -i '1a JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom"' $CATALINA_HOME/bin/catalina.sh && \
  47. echo 'JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom"' > $CATALINA_HOME/bin/setenv.sh && \
  48. rm -rf $CATALINA_HOME/bin/*.bat && \
  49. rm -rf $CATALINA_HOME/webapps/* && \
  50. rm -rf tomcat.tar.gz* && \
  51. mkdir -p $CATALINA_HOME/webapps/ROOT && \
  52. echo "ok" > $CATALINA_HOME/webapps/ROOT/index.html && \
  53. #解压agent
  54. unzip /usr/local/agent.zip -d /usr/local/ && \
  55. rm -rf /usr/local/agent.zip && \
  56. #添加jdk证书
  57. cd $JRE_HOME/lib/security && \
  58. echo y | keytool -import -trustcacerts -alias UCA-RSA-Non-Public-CA-G1.cer -file UCA-RSA-Non-Public-CA-G1.cer -keystore cacerts -storepass changeit
  59. #指定RUN、CMD、ENTRYPOINT命令的当前工作路径
  60. WORKDIR $CATALINA_HOME
  61. #暴露8080端口
  62. EXPOSE 8080
  63. #容器启动时执行的命令。
  64. CMD ["catalina.sh", "run"]

构建、压缩导出,导入

  1. docker build -t tomcat:v8.5.69-jdk1.8.0_292 .
  2. docker save tomcat:v8.5.69-jdk1.8.0_292 | gzip > tomcat-8.tar.gz
  3. docker load -i tomcat-8.tar.gz

项目实例

  1. # 添加参数
  2. cat setenv.sh
  3. JAVA_OPTS="${JAVA_OPTS} -Djava.awt.headless=true -javaagent:/usr/local/agent/webgate-agent/lib/webgate-agent.jar -Dpinpoint.licence=8621990031 -Dpinpoint.applicationName=gs_4a -Dpinpoint.agentId=135.152.12.80_30063 -Dwebgate.agent.name=gs4a_web_sec_tomcat -Dwebgate.was.instance.home=/usr/local/agent/webgate-agent/gs4a_web_sec_tomcat -javaagent:/usr/local/agent/aiopsagent-1.8.0/aiopsagent-1.8.0.jar -server -Xms4096m -Xmx4096m -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=256M -XX:MaxPermSize=1024M"
  4. # 构建
  5. cat .dockerignore
  6. *
  7. !setenv.sh
  8. # Dockerfile
  9. cat Dockerfile
  10. FROM tomcat:v9.0.50-jdk1.8.0_292
  11. MAINTAINER "Geray <1690014753@qq.com>"
  12. COPY setenv.sh /usr/local/tomcat/bin
  13. docker build -t tomcat9:v2 .

无jdk证书

  1. vi .dockerignore
  2. *
  3. !agent.zip
  4. vi Dockerfile
  5. FROM centos:7
  6. MAINTAINER "Geray <1690014753@qq.com>"
  7. RUN yum -y install telnet wget unzip zip openssh-clients iproute net-tools kde-l10n-Chinese reinstall glibc-common && \
  8. # 安装jdk
  9. # yum -y install java-1.8.0-openjdk && \
  10. yum -y install java-1.8.0-openjdk-devel.x86_64 && \
  11. yum clean all && \
  12. rm -rf /var/cache/yum/* && \
  13. localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 && \
  14. cat /dev/null > /etc/locale.conf && echo "LC_ALL=\"zh_CN.UTF-8\"" > /etc/locale.conf
  15. #env
  16. ENV TZ "Asia/Shanghai"
  17. #ENV LANG en_US.UTF-8
  18. ENV LANG zh_CN.UTF-8
  19. #JDK环境变量
  20. ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64
  21. ENV JRE_HOME ${JAVA_HOME}/jre
  22. ENV CLASS_PATH .:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JRE_HOME}/lib
  23. ENV PATH $PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
  24. #声明CATALINA_HOME环境变量
  25. ENV CATALINA_HOME /usr/local/tomcat
  26. #将Tomcat下的bin路径加入到PATH环境变量中。
  27. ENV PATH $CATALINA_HOME/bin:$PATH
  28. #Tomcat相关文件的版本。
  29. ENV TOMCAT_MAJOR 9
  30. ENV TOMCAT_VERSION 9.0.52
  31. #Tomcat相关文件下载地址
  32. ENV TOMCAT_TGZ_URL "https://www.apache.org/dyn/closer.cgi?action=download&filename=tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz"
  33. #下载验证文件
  34. #ENV TOMCAT_ASC_URL https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc
  35. #添加agent和证书文件
  36. COPY agent.zip /usr/local
  37. #COPY UCA-RSA-Non-Public-CA-G1.cer $JRE_HOME/lib/security
  38. #执行命令
  39. RUN set -x && \
  40. mkdir -p $CATALINA_HOME && \
  41. wget -O tomcat.tar.gz $TOMCAT_TGZ_URL && \
  42. #wget -O tomcat.tar.gz.asc "$TOMCAT_ASC_URL" && \
  43. tar -xvf tomcat.tar.gz --strip-components=1 -C $CATALINA_HOME && \
  44. # 禁用jdk随机数
  45. #sed -i '1a JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom"' $CATALINA_HOME/bin/catalina.sh && \
  46. echo 'JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom"' > $CATALINA_HOME/bin/setenv.sh && \
  47. rm -rf $CATALINA_HOME/bin/*.bat && \
  48. rm -rf $CATALINA_HOME/webapps/* && \
  49. rm -rf tomcat.tar.gz* && \
  50. mkdir -p $CATALINA_HOME/webapps/ROOT && \
  51. echo "ok" > $CATALINA_HOME/webapps/ROOT/index.html && \
  52. #解压agent
  53. unzip /usr/local/agent.zip -d /usr/local/ && \
  54. rm -rf /usr/local/agent.zip
  55. # 注释掉一下所有内容需要将上面放开
  56. #添加jdk证书
  57. #cd $JRE_HOME/lib/security && \
  58. #echo y | keytool -import -trustcacerts -alias UCA-RSA-Non-Public-CA-G1.cer -file UCA-RSA-Non-Public-CA-G1.cer -keystore cacerts -storepass changeit
  59. #指定RUN、CMD、ENTRYPOINT命令的当前工作路径
  60. WORKDIR $CATALINA_HOME
  61. #暴露8080端口
  62. EXPOSE 8080
  63. #容器启动时执行的命令。
  64. ENTRYPOINT ["catalina.sh", "run"]

构建

  1. docker build -t tomcat:v9.0.52-jdk1.8.0_302 .
  2. docker save tomcat:v9.0.52-jdk1.8.0_302 | gzip > tomcat-9.tar.gz
  3. docker load -i tomcat-9.tar.gz