docker 基础镜像

在我们使用构建镜像的时候。我们都会需要一个基础镜像。

有哪些基础镜像呢

有应用镜像,如 nginx、redis、mongo、mysql、httpd、php、tomcat 等;

有方便开发、构建、运行各种语言应用的编程语言镜像,如 dotnet sdk、node、oraclejdk,openjdk、python、ruby、golang 等。

还有更为基础的操作系统镜像,如 ubuntu、debian、centos、fedora、alpine 等,这些操作系统的软件库为我们提供了更广阔的扩展空间。

除了选择现有镜像为基础镜像外,Docker 还存在一个特殊的镜像,名为 scratch。这个镜像是虚拟的概念,并不实际存在,它表示一个空白的镜像。 如果你在DockerFIle中以 scratch 为基础镜像的话(FROM scratch),意味着你不以任何镜像为基础,接下来所写的指令将作为镜像第一层开始存在。 不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,比如 swarm、coreos/etcd。

去哪里找这些镜像

一般每一个语言的官网都有会介绍。 还有我们也可以去 https://hub.docker.com/ 来找这些镜像。 例如 .net相关的镜像

  1. .net sdk 镜像 用来编译生成

mcr.microsoft.com/dotnet/sdk:6.0 基于 Debian 操作系统 其它版本可以在这边看到 https://hub.docker.com/_/microsoft-dotnet-sdk/

  1. aspnet 运行时的镜像

mcr.microsoft.com/dotnet/aspnet:6.0 其它版本可以在这边看到 https://hub.docker.com/_/microsoft-dotnet-aspnet/

基于 Alpine 通常来说比较小,但是可能会缺少一些东西。比如TzData

最近更新的
...