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,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/167766124178260.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:鏡像文件制作(鏡像文件制作u盤啟動).doc
本文 PDF 下載地址:鏡像文件制作(鏡像文件制作u盤啟動).pdf
| 留言與評論(共有 0 條評論) |