it-swarm.com.de

Was ist der Unterschied zwischen einem Docker-Image und einem Container?

Bei Verwendung von Docker beginnen wir mit einem Basisimage. Wir booten es, erstellen Änderungen und diese Änderungen werden in Ebenen gespeichert, die ein anderes Bild bilden.

Schließlich habe ich ein Image für meine PostgreSQL-Instanz und ein Image für meine Webanwendung, deren Änderungen weiterhin bestehen bleiben.

Die Frage ist also: Was ist ein Container?

737
bibstha

Eine Instanz eines Bildes wird als Container bezeichnet. Sie haben ein Bild, bei dem es sich um eine Reihe von Ebenen handelt, die Sie beschreiben. Wenn Sie dieses Bild starten, haben Sie einen laufenden Container dieses Bildes. Es können mehrere Container mit demselben Image ausgeführt werden.

Sie können alle Ihre Bilder mit docker images sehen, während Sie Ihre laufenden Container mit docker ps sehen können (und Sie können alle Container mit docker ps -a sehen).

Eine laufende Instanz eines Images ist also ein Container.

999
Thomas Uhrig

In meinem Artikel zu Automatisieren von Docker-Bereitstellungen :

Docker Images vs. Container

Im Dockerland gibt es Bilder und es gibt Container . Die beiden sind eng miteinander verbunden, aber verschieden. Für mich hat das Erfassen dieser Dichotomie Docker immens geklärt.

Was ist ein Bild?

Ein Bild ist eine inaktive, unveränderliche Datei, die im Wesentlichen eine Momentaufnahme eines Containers ist. Images werden mit dem Befehl build erstellt und erzeugen einen Container, wenn sie mit run gestartet werden. Bilder werden in einer Docker-Registrierung wie registry.hub.docker.com gespeichert. Da Bilder sehr groß werden können, sind sie so konzipiert, dass sie aus Schichten anderer Bilder bestehen, sodass beim Übertragen von Bildern über das Netzwerk eine unzulässige Datenmenge gesendet werden kann.

Lokale Bilder können durch Ausführen von docker images aufgelistet werden:

REPOSITORY                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu                    13.10               5e019ab7bf6d        2 months ago        180 MB
ubuntu                    14.04               99ec81b80c55        2 months ago        266 MB
ubuntu                    latest              99ec81b80c55        2 months ago        266 MB
ubuntu                    trusty              99ec81b80c55        2 months ago        266 MB
<none>                    <none>              4ab0d9120985        3 months ago        486.5 MB

Einige Dinge zu beachten:

  1. BILD-ID sind die ersten 12 Zeichen des wahren Bezeichners für ein Bild. Sie können viele Tags für ein bestimmtes Bild erstellen, aber die IDs sind alle gleich (wie oben).
  2. VIRTUELLE GRÖSSE ist virtuell , da die Größen aller zugrunde liegenden Ebenen addiert werden. Dies bedeutet, dass die Summe aller Werte in dieser Spalte wahrscheinlich viel größer ist als der von all diesen Bildern belegte Speicherplatz.
  3. Der Wert in der Spalte REPOSITORY stammt aus dem Flag -t des Befehls docker build oder aus docker tag eines vorhandenen Bildes. Es steht Ihnen frei, Bilder mit einer für Sie sinnvollen Nomenklatur zu kennzeichnen, aber Sie wissen, dass Docker das Tag als Registrierungsspeicherort in einem docker Push oder docker pull verwendet.
  4. Die vollständige Form eines Tags ist [REGISTRYHOST/][USERNAME/]NAME[:TAG]. Für ubuntu oben wird gefolgert, dass REGISTRYHOST registry.hub.docker.com ist. Wenn Sie also Ihr Bild mit dem Namen my-application in einer Registrierung unter docker.example.com speichern möchten, sollten Sie dieses Bild docker.example.com/my-application kennzeichnen.
  5. Die TAG-Spalte ist nur der [: TAG] -Teil des vollständigen Tags. Dies ist eine unglückliche Terminologie.
  6. Das latest -Tag ist nicht magisch, es ist einfach das Standard-Tag, wenn Sie kein Tag angeben.
  7. Sie können Bilder ohne Tags nur anhand ihrer BILD-IDs identifizieren. Diese erhalten das <none> TAG und das REPOSITORY. Es ist leicht, sie zu vergessen.

Weitere Informationen zu Bildern finden Sie in den Dokumenten Docker-Dokumentation und Glossar .

Was ist ein Container?

Um eine Programmiermetapher zu verwenden, ist ein Container, wenn ein Bild eine Klasse ist, eine Instanz einer Klasse - ein Laufzeitobjekt. Container sind hoffentlich der Grund, warum Sie Docker verwenden. Sie sind leichte und tragbare Kapseln einer Umgebung, in der Anwendungen ausgeführt werden können.

Lokale laufende Container mit docker ps anzeigen:

CONTAINER ID        IMAGE                               COMMAND                CREATED             STATUS              PORTS                    NAMES
f2ff1af05450        samalba/docker-registry:latest      /bin/sh -c 'exec doc   4 months ago        Up 12 weeks         0.0.0.0:5000->5000/tcp   docker-registry

Hier führe ich eine dockerisierte Version der Docker-Registrierung aus, sodass ich einen privaten Ort zum Speichern meiner Bilder habe. Nochmals einige Dinge zu beachten:

  1. Wie IMAGE ID ist CONTAINER ID die wahre ID für den Container. Es hat die gleiche Form, identifiziert jedoch eine andere Art von Objekt.
  2. docker ps gibt nur laufende Container aus. Sie können alle Container ( anzeigen, auf denen oder angehalten ) mit docker ps -a ausgeführt wird.
  3. Mit NAMES kann ein gestarteter Container über das Flag --name identifiziert werden.

Wie vermeide ich den Aufbau von Bildern und Containern?

Eine meiner ersten Frustrationen mit Docker war die scheinbar ständige Anhäufung von Bildern ohne Tags und angehaltenen Containern . In einigen Fällen führte dieser Aufbau dazu, dass die Festplatten meinen Laptop verlangsamten oder meine automatisierte Build-Pipeline stoppten. Sprechen Sie über "Container überall"!

Wir können alle Bilder ohne Tags entfernen, indem wir docker rmi mit der aktuellen dangling=true-Abfrage kombinieren:

docker images -q --filter "dangling=true" | xargs docker rmi

Docker kann keine Bilder entfernen, die sich hinter vorhandenen Containern befinden. Daher müssen Sie angehaltene Container möglicherweise zuerst mit docker rm entfernen:

docker rm `docker ps --no-trunc -aq`

Dies sind bekannte Probleme mit Docker und werden möglicherweise in zukünftigen Versionen behoben. Mit einem klaren Verständnis von Bildern und Containern können diese Situationen jedoch mit ein paar Methoden vermieden werden:

  1. Entfernen Sie immer einen unbrauchbaren, angehaltenen Container mit docker rm [CONTAINER_ID].
  2. Entfernen Sie das Bild immer hinter einem unbrauchbaren, angehaltenen Container mit docker rmi [IMAGE_ID].
525
paislee

Während es am einfachsten ist, sich einen Container als ein laufendes Bild vorzustellen, ist dies nicht ziemlich genau.

Ein Bild ist wirklich eine Vorlage, die in einen Container umgewandelt werden kann. Um ein Bild in einen Container zu verwandeln, nimmt die Docker-Engine das Bild auf, fügt ein Lese-/Schreib-Dateisystem hinzu und initialisiert verschiedene Einstellungen, einschließlich Netzwerkports, Containername, ID und Ressourcenbeschränkungen. Ein laufender Container hat einen aktuell ausgeführten Prozess, aber ein Container kann auch angehalten werden (oder beendet in Dockers Terminologie). Ein verlassener Container entspricht nicht einem Image, da er neu gestartet werden kann und seine Einstellungen sowie alle Änderungen am Dateisystem beibehält.

113
Adrian Mouat

In einfachen Worten.

Bilder -

Das Dateisystem und die Konfigurationsanwendung (schreibgeschützt), mit der Container erstellt werden. Weitere Einzelheiten .

Behälter -

Auf diesen werden Instanzen von Docker-Images ausgeführt. Container führen die eigentlichen Anwendungen aus. Ein Container enthält eine Anwendung und alle Abhängigkeiten. Es teilt den Kernel mit anderen Containern und wird als isolierter Prozess im Benutzerbereich des Host-Betriebssystems ausgeführt. Weitere Einzelheiten .


Andere wichtige Begriffe zu beachten:


Docker-Daemon -

Der Hintergrunddienst, der auf dem Host ausgeführt wird, der das Erstellen, Ausführen und Verteilen von Docker-Containern verwaltet.

Docker-Client -

Das Befehlszeilentool, mit dem der Benutzer mit dem Docker-Dämon interagieren kann.

Docker Store -

Store ist unter anderem eine Registrierung von Docker-Images. Sie können sich die Registrierung als Verzeichnis aller verfügbaren Docker-Images vorstellen.

Ein Bild aus diesem Blog sagt mehr als tausend Worte.

Enter image description here

(Zum besseren Verständnis lesen Sie bitte this .)

Zusammenfassung:

  • Bild vom Docker-Hub ziehen oder aus einer Docker-Datei erstellen => Gibt ein Docker-Bild (nicht bearbeitbar).
  • Führen Sie das Bild aus (docker run image_name:tag_name) => Gibt ein laufendes Bild aus, d. H. Einen Container (bearbeitbar)
111
Imran

Vielleicht hilft es, den gesamten Workflow zu erklären.

Alles beginnt mit der Docker-Datei . Die Docker-Datei ist der Quellcode des Bildes.

Nachdem die Docker-Datei erstellt wurde, erstellen Sie sie, um das Image des Containers zu erstellen. Das Bild ist nur die "kompilierte Version" des "Quellcodes", der das Dockerfile ist.

Sobald Sie das Image des Containers haben, sollten Sie es mithilfe der Registrierung weitergeben. Die Registrierung ist wie ein Git-Repository - Sie können Bilder pushen und ziehen.

Als Nächstes können Sie das Image verwenden, um Container auszuführen . Ein laufender Container ähnelt in vielerlei Hinsicht einer virtuellen Maschine (jedoch ohne Hypervisor ).

Dieser Beitrag erklärt viele grundlegende Dinge über Docker-Container (es geht um Docker und Puppet, aber es gibt viele Konzepte, die in jedem Kontext verwendet werden können)

81
Tk421

Arbeitsablauf

Hier ist der End-to-End-Workflow, der die verschiedenen Befehle und ihre zugehörigen Ein- und Ausgänge zeigt. Das sollte die Beziehung zwischen einem Bild und einem Container verdeutlichen.

+------------+  docker build   +--------------+  docker run -dt   +-----------+  docker exec -it   +------+
| Dockerfile | --------------> |    Image     | --------------->  | Container | -----------------> | Bash |
+------------+                 +--------------+                   +-----------+                    +------+
                                 ^
                                 | docker pull
                                 |
                               +--------------+
                               |   Registry   |
                               +--------------+

Um die Bilder aufzulisten, die Sie ausführen könnten, führen Sie Folgendes aus:

docker image ls

Um die Container aufzulisten, können Sie Befehle ausführen für:

docker ps
43

Ich konnte das Konzept der Bild- und Ebene trotz des Lesens aller Fragen hier nicht verstehen und bin dann irgendwann darauf gestoßen - ausgezeichnete Dokumentation von Docker (duh!).

Das dortige Beispiel ist wirklich der Schlüssel zum Verständnis des gesamten Konzepts. Es ist ein langer Beitrag, daher fasse ich die wichtigsten Punkte zusammen, die wirklich erfasst werden müssen, um Klarheit zu erlangen.

  • Image : Ein Docker-Image besteht aus einer Reihe von schreibgeschützten Schichten

  • Ebene : Jede Ebene repräsentiert eine Anweisung im Dockerfile des Bildes.

Example: Die folgende Docker-Datei enthält vier Befehle, von denen jeder eine Ebene erstellt.

AB Ubuntu: 15.04

KOPIEREN ./App

RUN make/app

CMD python /app/app.py

Wichtig ist, dass jede Ebene nur eine Reihe von Unterschieden zur vorherigen Ebene darstellt.

  • Container . Wenn Sie einen neuen Container erstellen, fügen Sie eine neue beschreibbare Ebene über den darunter liegenden Ebenen hinzu . Diese Schicht wird oft als "Containerschicht" bezeichnet. Alle am laufenden Container vorgenommenen Änderungen, z. B. das Schreiben neuer Dateien, das Ändern vorhandener Dateien und das Löschen von Dateien, werden in diese dünne beschreibbare Containerebene geschrieben.

Daher ist der Hauptunterschied zwischen einem Container und einem Bild die oberste beschreibbare Ebene . Alle Schreibvorgänge in den Container, die neue Daten hinzufügen oder vorhandene Daten ändern, werden in dieser beschreibbaren Ebene gespeichert. Wenn der Container gelöscht wird, wird auch die beschreibbare Ebene gelöscht. Das zugrunde liegende Bild bleibt unverändert.

Grundlegendes zu Bildern und Containern aus Sicht der Größe auf der Festplatte

Mit dem Befehl docker ps -s können Sie die ungefähre Größe eines laufenden Containers anzeigen. Sie erhalten size und virtual size als zwei der Ausgaben:

  • Größe: Die Datenmenge (auf der Festplatte), die für die beschreibbare Ebene jedes Containers verwendet wird

  • Virtuelle Größe: Die Datenmenge, die für die schreibgeschützten Bilddaten verwendet wird, die vom Container verwendet werden. Mehrere Container können einige oder alle schreibgeschützten Bilddaten gemeinsam nutzen. Daher sind diese nicht additiv. Das heißt Sie können nicht alle virtuellen Größen hinzufügen, um zu berechnen, wie viel Größe auf der Festplatte vom Image verwendet wird

Ein weiteres wichtiges Konzept ist die Copy-on-Write-Strategie

Wenn eine Datei oder ein Verzeichnis in einer unteren Ebene des Bildes vorhanden ist und eine andere Ebene (einschließlich der beschreibbaren Ebene) Lesezugriff darauf benötigt, wird nur die vorhandene Datei verwendet. Wenn zum ersten Mal eine andere Ebene die Datei ändern muss (beim Erstellen des Bildes oder beim Ausführen des Containers), wird die Datei in diese Ebene kopiert und geändert.

Ich hoffe das hilft jemand anderem wie mir.

37
HopeKing

Dockerfile> (Build)> Image> (Run)> Container.

  • Dockerfile: Enthält eine Reihe von Docker-Anweisungen, die Ihr Betriebssystem nach Ihren Wünschen bereitstellen und alle Ihre Software installieren/konfigurieren.

  • Image: kompiliertes Dockerfile. Spart Ihnen Zeit, die Docker-Datei jedes Mal neu zu erstellen, wenn Sie einen Container ausführen müssen. Auf diese Weise können Sie Ihren Bereitstellungscode verbergen.

  • Container: das virtuelle Betriebssystem selbst, in das Sie ssh und beliebige Befehle ausführen können, als wäre es eine reale Umgebung. Sie können über 1000 Container von demselben Image ausführen.

26
Mahmoud Zalt

Einfach gesagt, wenn ein Bild ein Klasse ist, dann ist ein Container eine Instanz einer Klasse eine Laufzeit Objekt =.

14
kogoia

Das Kernkonzept von Docker besteht darin, die Erstellung von "Maschinen" zu vereinfachen, die in diesem Fall als Container betrachtet werden können. Der Container unterstützt die Wiederverwendbarkeit, sodass Sie problemlos Container erstellen und ablegen können.

Bilder zeigen den Zustand eines Containers zu jedem Zeitpunkt. Der grundlegende Workflow lautet also:

  1. erstelle ein Bild
  2. starte einen Container
  3. nehmen Sie Änderungen am Container vor
  4. speichern Sie den Container als Bild zurück
12
kweku360

Ein Container ist lediglich eine ausführbare Binärdatei, die vom Host-Betriebssystem unter einer Reihe von Einschränkungen ausgeführt werden soll, die mit einer Anwendung (z. B. Docker) festgelegt wurden, die dem Betriebssystem mitteilt, welche Einschränkungen anzuwenden sind.

Die typischen Einschränkungen betreffen die Prozessisolation, die Sicherheit (wie bei Verwendung des SELinux-Schutzes) und die Systemressourcen (Speicher, Festplatte, CPU, Netzwerk).

Bis vor kurzem unterstützten nur Kernel in Unix-basierten Systemen die Möglichkeit, ausführbare Dateien unter strengen Einschränkungen auszuführen. Das ist der Grund, warum die meisten Container-Diskussionen heutzutage hauptsächlich Linux- oder andere Unix-Distributionen betreffen.

Docker ist eine dieser Anwendungen, die dem Betriebssystem (meistens Linux) mitteilt, unter welchen Einschränkungen eine ausführbare Datei ausgeführt werden soll. Die ausführbare Datei ist im Docker-Image enthalten, bei dem es sich lediglich um eine Tarfile handelt. Diese ausführbare Datei ist normalerweise eine abgespeckte Version einer Linux-Distribution (Ubuntu, Centos, Debian usw.), die für die Ausführung einer oder mehrerer Anwendungen vorkonfiguriert ist.

Obwohl die meisten Leute eine Linux-Basis als ausführbare Datei verwenden, kann es sich um jede andere Binäranwendung handeln, solange das Host-Betriebssystem sie ausführen kann. (Siehe Erstellen eines einfachen Basisimages mit Scratch ). Unabhängig davon, ob es sich bei der Binärdatei im Docker-Image um ein Betriebssystem oder um eine Anwendung handelt, handelt es sich beim Betriebssystemhost nur um einen anderen Prozess, der durch voreingestellte Betriebssystemgrenzen geregelt wird.

Andere Anwendungen, wie Docker, die dem Host-Betriebssystem mitteilen können, welche Grenzen auf einen Prozess angewendet werden sollen, während er ausgeführt wird, umfassen LXC , libvirt und systemd . Docker verwendete diese Anwendungen, um indirekt mit dem Linux-Betriebssystem zu interagieren. Jetzt interagiert Docker direkt mit Linux mithilfe seiner eigenen Bibliothek mit dem Namen " libcontainer ".

Container sind also nur Prozesse, die in einem eingeschränkten Modus ausgeführt werden, ähnlich dem, was chroot verwendet hat.

IMO unterscheidet Docker von allen anderen Containertechnologien durch sein Repository (Docker Hub) und dessen Verwaltungstools, die die Arbeit mit Containern extrem vereinfachen.

Siehe https://en.m.wikipedia.org/wiki/Docker_ (Linux_container_engine)

12
AleQ

Wie viele Antworten darauf hinwiesen: Sie bauen Dockerfile um ein Bild) zu erhalten und du rennst Bild um einen Container zu erhalten .

Die folgenden Schritte haben mir jedoch geholfen, ein besseres Gefühl dafür zu bekommen, was Docker-Image und Container sind:

1) Dockerfile erstellen:

docker build -t my_image dir_with_dockerfile

2) Speichern Sie das Bild in der Datei .tar

docker save -o my_file.tar my_image_id

my_file.tar speichert das Bild. Öffne es mit tar -xvf my_file.tar und du wirst alle Ebenen sehen. Wenn Sie tiefer in die einzelnen Ebenen eintauchen, können Sie sehen, welche Änderungen in den einzelnen Ebenen hinzugefügt wurden. (Sie sollten den Befehlen in der Docker-Datei ziemlich nahe kommen.).

3) Um einen Blick in einen Container zu werfen, können Sie Folgendes tun:

Sudo docker run -it my_image bash

und Sie können sehen, dass das einem Betriebssystem sehr ähnlich ist.

6
Akavall

Image entspricht einer Klassendefinition in OOP und Ebenen sind verschiedene Methoden und Eigenschaften dieser Klasse.

Container ist die tatsächliche Instanz des Bildes, genauso wie ein Objekt eine Instanz oder eine Instanz einer Klasse ist.

4
Rohit Salecha

Wie im Programmieraspekt

Bild ist ein Quellcode.

Wenn Quellcode kompiliert und erstellt wird, wird es als Anwendung aufgerufen.

Ähnlich wie bei "Wenn eine Instanz für das Image erstellt wird" wird sie als "Container" bezeichnet.

3
Nandakumar

Ein Docker-Image packt die Anwendung und die Umgebung, die für die Ausführung der Anwendung erforderlich sind, und ein Container ist eine ausgeführte Instanz des Images.

Bilder sind der Verpackungsteil von Docker, analog zu "Quellcode" oder einem "Programm". Container sind der Ausführungsteil von Docker, analog zu einem "Prozess".

In der Frage wird nur auf den "Programm" -Teil verwiesen und das ist das Bild. Der "laufende" Teil von Docker ist der Container. Wenn ein Container ausgeführt wird und Änderungen vorgenommen werden, ändert der Prozess den eigenen Quellcode und speichert ihn als neues Image.

3
div

Zusamenfassend:

Container ist eine Unterteilung (virtuell) in einem Kernel, der ein gemeinsames Betriebssystem verwendet und ein Image ausführt (Docker-Image).

Ein Container ist eine eigenständige Anwendung, die Pakete und alle erforderlichen Abhängigkeiten enthält, um den Code auszuführen.

Ein Docker-Container führt eine Instanz eines Images aus. Sie können ein Bild mit einem Programm und einen Container mit einem Prozess verknüpfen :)

1
Rahul Bagad

Ein Bild ist für eine Klasse ein Container für ein Objekt.

Ein Container ist eine Instanz eines Bildes, während ein Objekt eine Instanz einer Klasse ist.

1
Rodolfo

Ich denke, es ist besser, am Anfang zu erklären.

Angenommen, Sie führen den Befehl Docker run hello-world aus. was geschieht ?

es ruft docker cli auf, der dafür verantwortlich ist, Docker-Befehle anzunehmen und in call docker server -Befehle umzuwandeln. Sobald Docker-Server den Befehl zum Ausführen erhält Bild, prüft er das Wetter Bild-Cache enthält Bild einen solchen Namen. Angenommen, Hallo-Welt existiert nicht. Docker-Server wechselt zu Docker-Hub (Docker-Hub ist nur ein freies Repository für Bilder) und fragt, hey Hub, ob Sie ein Image haben Hallo Welt ? Hub-Antworten - ja, das tue ich. dann gib es mir bitte. und der Downloadvorgang beginnt. Sobald Docker-Image heruntergeladen wurde, Docker-Server wird es in Image-Cache abgelegt.

Bevor wir also erklären, was Docker-Image und Docker-Container sind, beginnen wir mit einer Einführung in das Betriebssystem auf Ihrem Computer und wie es Software ausführt.

wenn Sie zum Beispiel chrome auf Ihrem Computer ausführen, ruft es das Betriebssystem auf, das Betriebssystem selbst ruft den Kernel auf und fragt, hey, ich möchte dieses Programm ausführen. Der Kernel kann Dateien von Ihrer Festplatte ausführen.

stellen Sie sich nun vor, Sie haben zwei Programme chrome und nodejs. chrome erfordert python Version 2, und nodejs erfordert python Version 3, um ausgeführt zu werden. Wenn Sie nur python v2 auf Ihrem Computer installiert haben, wird nur chrome ausgeführt.

damit beide Fälle funktionieren, müssen Sie die als Namespace bezeichnete Betriebssystemfunktion verwenden. Namespace ist eine Funktion, mit der Sie Prozesse, Festplatten, Netzwerke, Benutzer, Hostnamen usw. isolieren können.

Wenn wir also von einem Bild sprechen, sprechen wir tatsächlich von einem Dateisystem-Snapshot. Ein Bild ist eine physische Datei, die Anweisungen und Metadaten zum Erstellen spezifischer Container enthält. Container selbst ist eine Instanz eines Image, es isoliert die Festplatte mit einem Namespace, der nur für dieses Container verfügbar ist. Also container ist ein Prozess oder eine Gruppe von Prozessen, die verschiedene ihm zugewiesene Ressourcen gruppieren.

0

Dockerfile ist wie ein Bash-Skript, das einen Tarball erzeugt (Docker-Image).

Docker-Container sind wie extrahierte Versionen des Tarballs. Sie können beliebig viele Kopien in verschiedenen Ordnern (den Containern) haben.

0
haalcala

Für eine Dummy-Programmier-Analogie kann man sich vorstellen, dass Docker eine abstrakte ImageFactory hat, die ImageFactories enthält, aus denen sie stammen store .

Wenn Sie dann aus dieser ImageFactory eine App erstellen möchten, haben Sie einen neuen Container, den Sie nach Belieben ändern können. DotNetImageFactory ist unveränderlich, da es als abstrakte Factory-Klasse fungiert und nur die von Ihnen gewünschten Instanzen liefert.

IContainer newDotNetApp = ImageFactory.DotNetImageFactory.CreateNew(appOptions);
newDotNetApp.ChangeDescription("I am making changes on this instance");
newDotNetApp.Run();
0
Teoman shipahi
  1. Bild - Es ist der Baustein eines Containers. Es ist eigentlich eine Art Momentaufnahme der virtuellen, ist aber leichter.

  2. Container - Dies ist eine Methode zur Virtualisierung des Betriebssystems, sodass eine Anwendung und die zugehörigen Abhängigkeiten in ressourcenisolierten Prozessen ausgeführt werden können.

Während wir einen Docker verwenden, erhalten wir im Moment ein Basis-Image. Wir booten es dann, nehmen die relevanten Änderungen vor und speichern diese Änderungen in Ebenen, die ein anderes Bild bilden. Ein Container ist im Grunde eine Instanz eines Bildes. Dies bedeutet, dass ein laufendes Bild ein Container ist. Wenn eine Person ein Bild startet, führt sie gerade einen Container aus. Es können mehrere Container gleichzeitig mit demselben Bild ausgeführt werden.

Man kann alle Bilder mit dem folgenden Code anzeigen:

Andockbilder

Die laufenden Container sind zu sehen mit:

Docker ps

Wenn man alle Container sehen will, ob sie laufen oder nicht:

Docker ps -a

0
Prakash