簡體   English   中英

了解tomcat docker文件

[英]Understanding tomcat docker files

我在看下面的tomcat docker文件:

https://github.com/docker-library/tomcat/blob/5c8b74e495a1b63116b524407941b15eef58a7fe/8.0/jre8/Dockerfile

但是,是否不應該將操作系統指定為基本映像(例如Ubuntu,debian等)?

我基本上只需要一個包含ubuntu 16.x,java 8和tomcat 8的docker文件。但是不能真正確定為什么我在上面的dockerfile中需要那么多行來完成該任務。

Docker使用FROM指令指示基本映像。 如果您遍歷它,您會發現

FROM debian:stretch

https://github.com/docker-library/buildpack-deps/blob/master/stretch/curl/Dockerfile

該映像包含需要在docker映像上編譯的tomcat APR庫。 要運行tomcat,並不需要庫,但建議使用庫,因為它是快速且可擴展的連接器。

Dockerfile可以使用任何有效的Docker映像指定FROM 您通常會獲得一個圖像層次結構,一個圖像層次結構已安裝了基本操作系統,然后一個子層次結構自定義了該操作系統以運行某些應用程序類型,例如Java應用程序,Node應用程序等。

要弄清楚圖像中的內容,您需要從FROM語句的層次結構進行跟進以獲得完整的圖片。

從鏈接的Dockerfile ,您可以看到FROM openjdk:8-jre 這告訴我們,此Dockerfile基於openjdk:8-jre映像的:latest標簽構建映像。 因此,這意味着我們可以找到該映像的Dockerfile並看到openjdk:8-jre實際上建立在buildpack-deps:stretch-curl映像上,而buildpack-deps:stretch-curl映像又建立在debian:stretch映像上。

或者,您可以對圖像使用docker history ,例如docker history openjdk:8-jre以查看圖像所組成的層的列表。

在某些Dockerfile中看到這么多行的原因是該映像建立在最小的基礎映像上。 這在docker中被認為是保持圖像較小的一種很好的做法。

Ubuntu映像等相當大,通常不需要達到打包應用程序的最終結果。

在tomcat映像中,Dockerfile位於openjdk:8-jre映像的頂部,該映像本身是建立在基本的debian:stretch之上的。 因此,像使用Ubuntu一樣,直接將tomcat直接安裝在Dockerfile中可能並不直接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM