Docker制作镜像文件
简介在工作当中我们往往在dockerhub上找不到自己想要的镜像,还有很多场景是我们的项目对基础环境有特殊要求,这种情况下就需要运维人员来根据项目要求来定制镜像了,本文介绍了如何定制一个tomcat服务所需的镜像。
准备工作我的项目需要的java版本是jdk-8u151,tomcat版本是Server number: 10.0.2x,操作系统是Centos7,一般来说要尽量收集多项目依赖环境,以免因环境不一致造成不必要的麻烦
ll jdk-8u151-linux-x64.tar.gz tomcat-demo.zip-rwxrwxrwx 1 root root 189736377 Nov 28 09:32 jdk-8u151-linux-x64.tar.gz*-rwxrwxrwx 1 root root 8171286 Nov 28 15:32 tomcat-demo.zip*
编写Dockerfile
Dockerfile为制作镜像的配置文件
FROM centos:centos7MAINTAINER leenhemRUN mkdir /usr/local/jdkWORKDIR /usr/local/jdkADD jdk-8u151-linux-x64.tar.gz /usr/local/jdkADD tomcat /usr/local/tomcatENV JAVA_HOME /usr/local/jdk/jdk1.8.0_151ENV JRE_HOME /usr/local/jdk/jdk1.8.0_151/jreENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATHENV PATH $JAVA_HOME/bin:$JRE_HOME/bin:$PATHENV CATALINA_HOME=/usr/local/tomcatWORKDIR /usr/local/tomcatRUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeEXPOSE 8080CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
构建镜像文件
这里我构建的是一个项目需要的基础镜像模板
#这里是一个基础镜像,如果以后的项目是使用的这个环境,都使用这一个镜像 docker build -t tomcat:v1 .[+] Building 38.3s (12/12) FINISHED => [internal] load build definition from Dockerfile 0.1s => => transferring dockerfile: 32B 0.1s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/centos:centos7 2.3s => [internal] load build context 1.1s => => transferring context: 8.99MB 1.1s => [1/7] FROM docker.io/library/centos:centos7@sha256:c73f515d06b0fa07bb18d8202035e739a494ce760aa73129f60f4bf2bd22b407 22.1s => => resolve docker.io/library/centos:centos7@sha256:c73f515d06b0fa07bb18d8202035e739a494ce760aa73129f60f4bf2bd22b407 0.0s => => sha256:c73f515d06b0fa07bb18d8202035e739a494ce760aa73129f60f4bf2bd22b407 1.20kB / 1.20kB 0.0s => => sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f 529B / 529B 0.0s => => sha256:eeb6ee3f44bd0b5103bb561b4c16bcb82328cfe5809ab675bb17ab3a16c517c9 2.75kB / 2.75kB 0.0s => => sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc 76.10MB / 76.10MB 15.2s => => extracting sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc 6.2s => [2/7] RUN mkdir /usr/local/jdk 1.4s => [3/7] WORKDIR /usr/local/jdk 0.0s => [4/7] ADD jdk-8u151-linux-x64.tar.gz /usr/local/jdk 7.4s => [5/7] ADD tomcat /usr/local/tomcat 0.1s => [6/7] WORKDIR /usr/local/tomcat 0.1s => [7/7] RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 0.5s => exporting to image 4.1s => => exporting layers 4.1s => => writing image sha256:95ea78f3f8ba29ad7d9f015061e87f6f53099a6261917d6a5021a59cbe813715 0.0s => => naming to docker.io/library/tomcat:v1
如何使用这个镜像部署项目
上面是个基础镜像,想要部署项目,还需要把项目放到镜像内
我这里又加了一个名字 Dockerfile 的配置文件,用于部署项目时生成镜像
cat > rvice_dockerfile <<EOFFROM tomcat:v1RUN mkdir -p /usr/local/tomcat/webapps/test/COPY test /usr/local/tomcat/webapps/test/EOF
打包项目镜像
docker build -f ./rvice_dockerfile -t tomcat_rvice:v1 .[+] Building 0.8s (8/8) FINISHED => [internal] load build definition from rvice_dockerfile 0.1s => => transferring dockerfile: 150B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/tomcat:v1 0.0s => CACHED [1/3] FROM docker.io/library/tomcat:v1 0.0s => [internal] load build context 0.1s => => transferring context: 60B 0.0s => [2/3] RUN mkdir -p /usr/local/tomcat/webapps/test/ 0.5s => [3/3] COPY test /usr/local/tomcat/webapps/test/ 0.0s => exporting to image 0.1s => => exporting layers 0.1s => => writing image sha256:698a3608f716758d51d259d0017f2311217d97f8ec00e5187281afc42f352b72 0.0s => => naming to docker.io/library/tomcat_rvice:v1
可以看到最后一步就把项目test目录下的文件都复制到镜像里了,然后就可以使用生成的tomcat_rvice:v1进行部署项目了。
本文发布于:2023-02-28 20:11:00,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/167766124178260.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:镜像文件制作(镜像文件制作u盘启动).doc
本文 PDF 下载地址:镜像文件制作(镜像文件制作u盘启动).pdf
留言与评论(共有 0 条评论) |