[英]Understanding tomcat docker files
我在看下面的tomcat docker文件:
但是,是否不應該將操作系統指定為基本映像(例如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.