zl程序教程

您现在的位置是:首页 >  工具

当前栏目

dockerfile生产案例-制作自定义tomcat业务镜像

Tomcat案例镜像 自定义 制作 业务 生产 Dockerfile
2023-06-13 09:15:42 时间
生产案例:制作自定义tomcat业务镜像

基于官方提供的centos、debian、ubuntu、alpine等基础 镜像构建 JDK (Java环 境),然后再基于自定义的 JDK 镜像构建出业务需要的tomcat 镜像

自定义 Centos 系统基础镜像

先基于官方提供的基础镜像,制作出安装了常用命令的自定义基础镜像

[root@ubuntu1804 ~]#docker pull centos:centos7.7.1908

[root@ubuntu1804 ~]#mkdir -p /data/dockerfile/{web/{nginx,tomcat,jdk},system/{centos,ubuntu,alpine,debian}} 

[root@ubuntu1804 ~]#cd /data/dockerfile/system/centos/ 

[root@ubuntu1804 centos]#vim Dockerfile

[root@ubuntu1804 centos]#cat Dockerfile 

# Centos Base Image 

FROM centos:centos7.7.1908

LABEL maintainer= wangxiaochun root@wangxiaochun.com 

RUN yum -y install wget rm -f /etc/yum.repos.d/* wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo /

 wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo /

 yum -y install vim-enhanced tcpdump lrzsz tree telnet bash-completion net-tools wget bzip2 lsof zip unzip nfs-utils gcc make gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel /

 yum clean all /

 rm -f /etc/localtime /

 ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#添加系统账户

RUN groupadd www -g 2019 useradd www -u 2019 -g www 

[root@ubuntu1804 centos]#vim build.sh

#通过脚本构建镜像 

[root@ubuntu1804 centos]#cat build.sh 

#!/bin/bash 

docker build -t centos7-base:v1 . 

[root@ubuntu1804 centos]#bash build.sh 

[root@ubuntu1804 centos]#docker images 

REPOSITORY TAG IMAGE ID CREATED SIZE

centos7-base v1 34ab3afcd3b3 4 seconds ago 403MB

centos centos7.7.1908 08d05d1d5859 2 months ago 204MB
构建JDK 镜像 上传JDK压缩包和profile文件上传到Dockerfile当前目录
#将CentOS7主机上的/etc/profile文件传到 Dockerfile 所在目录下

[root@ubuntu1804 ~]#scp centos7:/etc/profile 10.0.0.100:/data/dockerfile/web/jdk

#修改profile文件,加下面四行相关变量

[root@ubuntu1804 ~]#vim /data/dockerfile/web/jdk/profile

[root@ubuntu1804 ~]#tail -n 5 /data/dockerfile/web/jdk/profile

export JAVA_HOME=/usr/local/jdk

export TOMCAT_HOME=/apps/tomcat

export PATH=JAVA_HOME/bin:JAVA_HOME/jre/bin:TOMCAT_HOME/bin:PATH

export CLASSPATH=.CLASSPATH:JAVA_HOME/lib:JAVA_HOME/jre/lib:JAVA_HOME/lib/tools.jar

#下载jdk文件传到Dockfile目录下

#https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

[root@ubuntu1804 ~]#tree /data/dockerfile/web/jdk

/data/dockerfile/web/jdk

├── jdk-8u212-linux-x64.tar.gz

└── profile

0 directories, 2 files
准备Dockerfile文件
[root@ubuntu1804 ~]#vim /data/dockerfile/web/jdk/Dockerfile 

[root@ubuntu1804 ~]#cat /data/dockerfile/web/jdk/Dockerfile

#JDK Base Image

FROM centos7-base:v1

LABEL maintainer= wangxiaochun root@wangxiaochun.com 

ADD jdk-8u212-linux-x64.tar.gz /usr/local/src/

RUN ln -s /usr/local/src/jdk1.8.0_212 /usr/local/jdk

ADD profile /etc/profile

ENV JAVA_HOME /usr/local/jdk

ENV JRE_HOME JAVA_HOME/jre

ENV CLASSPATHJAVA_HOME/lib/:JRE_HOME/lib/

ENV PATHPATH:$JAVA_HOME/bin

执行构建脚本制作镜像
[root@ubuntu1804 ~]#vim /data/dockerfile/web/jdk/build.sh

[root@ubuntu1804 ~]#cat /data/dockerfile/web/jdk/build.sh

#!/bin/bash

docker build -t centos7-jdk:8u212 .

[root@ubuntu1804 ~]#tree /data/dockerfile/web/jdk/

/data/dockerfile/web/jdk/

├── build.sh

├── Dockerfile

├── jdk-8u212-linux-x64.tar.gz

└── profile

0 directories, 4 files

[root@ubuntu1804 ~]#cd /data/dockerfile/web/jdk/

[root@ubuntu1804 jdk]#bash build.sh

[root@ubuntu1804 jdk]#docker images 

REPOSITORY TAG IMAGE ID CREATED SIZE

centos7-jdk 8u212 fdbeb8a49ea6 59 seconds ago 809MB

centos7-base v1 34ab3afcd3b3 44 minutes ago 403MB

centos centos7.7.1908 08d05d1d5859 2 months ago 204MB
从镜像启动容器测试
[root@ubuntu1804 jdk]#docker run -it --rm centos7-jdk:8u212 bash

[root@25c9c0266bd2 /]# java -version

java version 1.8.0_212 

Java(TM) SE Runtime Environment (build 1.8.0_212-b10)

Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)

本文链接:http://www.yunweipai.com/34839.html

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/52665.html

centosDockerjavalinuxnginxTomcatUbuntu