Zu den Basisbildern gehören: 1. Anwendungsbilder (Nginx, Redis, Mongo, MySQL, httpd, PHP, Tomcat usw.); 2. Programmiersprachenbilder (Node, OracleJDK, OpenJDK, Python, Golang usw.); . Leere Bilder „kratzen“.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Docker-1.13.1-Version, Dell G3-Computer.
Wir verwenden normalerweise ein Image als Basis und passen es an, welches das Basis-Image ist.
Es ist, als würde man einen nginx
-Bildcontainer ausführen und dann Änderungen vornehmen. Das Basis-Image muss in DockerFile angegeben werden (FROM dient zur Angabe des Basis-Images, daher ist FROM eine notwendige Anweisung in einer Docker-Datei und muss die erste Anweisung sein)nginx
镜像的容器,再进行修改一样。在DockerFile中基础镜像是必须指定的 (FROM 就是指定 基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令)
比如构建一个Java应用的镜像,选择一个Oracle JDK的镜像作为基础镜像比选择一个alpine镜像作为基础镜像更方便。
在 Docker Hub 上有非常多的高质量的官方镜像,可以在其中寻找一个最符合我们最终目标的镜像为基础镜像进行定制。
有应用镜像,如 nginx
、redis
、mongo
、mysql
、httpd
、php
、tomcat
等;
有方便开发、构建、运行各种语言应用的编程语言镜像,如 node
、oraclejdk
,openjdk
、python
、ruby
、golang
等。
还有更为基础的操作系统镜像,如 ubuntu
、debian
、centos
、fedora
、alpine
等,这些操作系统的软件库为我们提供了更广阔的扩展空间。
除了选择现有镜像为基础镜像外,Docker 还存在一个特殊的镜像,名为 scratch
。这个镜像是虚拟的概念,并不实际存在,它表示一个空白的镜像。
如果你在DockerFIle中以 scratch
为基础镜像的话(FROM scratch
),意味着你不以任何镜像为基础,接下来所写的指令将作为镜像第一层开始存在。不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,比如 swarm
、coreos/etcd
。对于 Linux 下静态编译的程序来说,并不需要有操作系统提供运行时支持,所需的一切库都已经在可执行文件里了,因此直接 FROM scratch
Um beispielsweise ein Java-Anwendungs-Image zu erstellen, wählen Sie eine Oracle JDK-Spiegelung als Basisbild ist praktischer als die Auswahl eines Alpenbildes als Basisbild.
nginx
, redis
, mongo
, mysql code>, <code>httpd
, php
, tomcat
usw. Erstellen und Ausführen von Anwendungen in verschiedenen Sprachen, wie z. B. node
, oraclejdk
, openjdk
, python
, ruby
, golang
usw. 🎜🎜Es gibt auch grundlegendere Betriebssystem-Images, wie zum Beispiel ubuntu
, debian
, centos
, Fedora
, alpine
usw. Die Softwarebibliotheken dieser Betriebssysteme bieten uns einen größeren Erweiterungsraum. 🎜🎜Zusätzlich zur Auswahl eines vorhandenen Images als Basis-Image verfügt Docker auch über ein spezielles Image namens scratch
. Dieses Bild ist ein virtuelles Konzept und existiert nicht tatsächlich. Es stellt ein leeres Bild dar. 🎜🎜Wenn Sie scratch
als Basis-Image in DockerFIle verwenden (FROM Scratch
), bedeutet dies, dass Sie nicht auf einem Image basieren und die als nächstes geschriebenen Anweisungen wie folgt lauten Die erste Ebene des Bildes beginnt zu existieren. Es ist nicht ungewöhnlich, ausführbare Dateien direkt in Images zu kopieren, ohne auf einem System wie swarm
, coreos/etcd
zu basieren. Für statisch kompilierte Programme unter Linux ist kein Betriebssystem zur Laufzeitunterstützung erforderlich. Alle erforderlichen Bibliotheken sind bereits in der ausführbaren Datei enthalten, sodass das Image direkt von Grund auf vergrößert wird kompakt. 🎜Viele mit der Go-Sprache entwickelte Anwendungen verwenden diese Methode zum Erstellen von Bildern🎜, was einer der Gründe ist, warum manche Leute denken, dass Go eine Sprache ist, die sich besonders für die Container-Microservice-Architektur eignet. 🎜🎜Empfohlenes Lernen: „🎜Docker-Video-Tutorial🎜“🎜Das obige ist der detaillierte Inhalt vonWas sind die Docker-Basisbilder?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!