Nachdem ich Docker verstanden hatte, stellte ich es tatsächlich vor.

1 Über diesen Artikel

Es scheint, dass ich Docker ab morgen an meinem neuen Arbeitsplatz verwenden werde, aber ich weiß es nicht (oder fast nichts), also habe ich es nachgeschlagen.

2 Was ist Docker?

Ich weiß nicht, was Docker überhaupt ist, also habe ich es nachgeschlagen.

Docker ist kurz gesagt eine "einfache, benutzerfreundliche, leichte Containerumgebung, die unter Linux ausgeführt wird". Sie können eine Box namens Container auf einem Betriebssystem namens Linux vorbereiten, die erforderliche Software und Bibliotheken (Tools) in diesem Container installieren und als einzelne Einheit verpacken.

Quelle: Geschichte der Einführung von Docker in die Entwicklungsumgebung zur Rationalisierung des Entwicklungs-Entwicklungs-Hauptquartiers / TechLunch-


Docker ist eine der Technologien, die im Bereich Infrastruktur und DevOps Aufmerksamkeit erregen, und eine von Docker entwickelte Plattform zum Erstellen, Verteilen und Ausführen von virtuellen Umgebungen vom Containertyp. Docker verwendet Linux-Containertechnologie und wird häufig mit virtuellen Maschinen verglichen. In virtuellen Maschinen wie VirtualBox wird das Gastbetriebssystem mithilfe des Hypervisors auf dem Hostcomputer ausgeführt, und Middleware usw. wird darauf ausgeführt. Andererseits verwendet der Container den Kernel des Hostcomputers und isoliert Prozesse, Benutzer usw., sodass er so betrieben werden kann, als ob ein anderer Computer ausgeführt wird. Daher ist es leicht und kann mit hoher Geschwindigkeit gestartet und gestoppt werden.

Quelle: Einführung in Docker (1.) - Was ist Docker und was ist gut -

** Wenn Sie in einer Containerumgebung namens Docker entwickeln, können Sie diese Umgebung anscheinend verpacken, was praktisch ist **.

3 Installieren Sie Docker

Folgen Sie den Offiziellen Dokumenten, um Docker auf Ubuntu zu installieren.

3.1 Deinstallieren Sie die alte Version von Docker für alle Fälle

Es besteht die Möglichkeit, dass Sie eine ältere Version von Docker auf Feinpartikelebene installiert haben. Führen Sie daher den Befehl remove aus. Es scheint, dass Sie es nicht tun müssen.

$ sudo apt-get remove docker docker-engine docker.io containerd runc

Es ist in Ordnung, wenn so etwas wie das Paket 'XXXX' nicht installiert ist und daher nicht entfernt angezeigt wird.

3.2 Paketindex aktualisieren ・ Installieren Sie das Paket, damit apt das Repository verwenden kann

Installieren Sie die zur Installation von Docker erforderlichen Pakete. Es scheint, dass der Hauptzweck darin besteht, die Tatsache auszugleichen, dass apt HTTPS nicht unterstützt.

$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common

3.3 Offizieller GPG-Schlüssel hinzugefügt

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Ich bin mir nicht sicher, was ich tue, also werde ich genauer hinsehen.

3.3.1 Was ist Locken?

Da ich curl in 3.2 installiert habe, kann ich den Befehl curl verwenden. Was ist der Curl-Befehl?

Wenn Sie eine URL als Argument angeben, wird die Datei mit dieser URL heruntergeladen. Das Standardausgabeziel ist "Standardausgabe". Speichern Sie es daher mit einer Umleitung oder geben Sie die Option "-O" oder "-o" an.

Quelle: [curl] Befehls-Download (Transfer) -Dateien mit verschiedenen Protokollen

Der Befehl curl ist ein ** Befehl zum Herunterladen **. (-fsSL ist diese Option. Ich werde sie diesmal weglassen.)

3.3.2 Was ist GPG?

Die URL des Arguments des Befehls curl ist die URL von Dockers GPG. Da der Befehl curl ein Befehl zum Herunterladen ist, laden Sie das GPG von Docker herunter. GPG ist eine Abkürzung für ** GnuPG **, und was ist das?

Ein Tool, das die Signatur einer Datei mit einem öffentlichen Schlüssel überprüft, eine E-Mail mit einem öffentlichen / privaten Schlüsselpaar verschlüsselt / entschlüsselt und eine Signatur anfügt.

Quelle zitieren:GnuPG |IT-Glossar|Otsuka Shokai

Mit anderen Worten, Sie sollten es als ** den für die Authentifizierung erforderlichen Schlüssel ** betrachten.

3.3.3 Was ist apt-key?

Ich übergebe das Docker-GPG an apt-key. Was ist apt-key?

"Apt-key" ist ein Befehl, der die Liste der Schlüssel verwaltet, die "apt" zur Authentifizierung von Paketen verwendet. Um das Paket von einem anderen als Ubuntu-Beamten zu erhalten, müssen Sie die Schlüsselinformationen angeben, um sich mit diesem Befehl zu authentifizieren.

Quelle: Verwendung von apt / apt-key | npaka | note

Mit anderen Worten, es scheint, dass zur Installation von Docker das GPG von Docker in den lokalen App-Schlüssel importiert werden muss.

3.4 Schlüsselbestätigung

Stellen Sie sicher, dass der GPG-Schlüssel hinzugefügt wurde. Der Fingerabdruck des GPG-Schlüssels von Docker lautet "9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88". Suchen Sie also wie folgt nach den letzten 8 Ziffern. Wenn das Ergebnis angezeigt wird, ist es in Ordnung.

$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <[email protected]>
sub   rsa4096 2017-02-22 [S]

3.5 Richten Sie ein stabiles Repository ein

$sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

[Ubuntu] Hinzufügen / Entfernen eines PPA | Hbk-Projekts

Wenn Sie sich diesen Artikel ansehen, ist es leicht zu verstehen, woran Sie arbeiten. Standardmäßig können nur Pakete mit apt in /etc/apt/source.list installiert werden. Mit anderen Worten, um Docker zu installieren, muss PPA (Personal Package Archive) hinzugefügt werden.

3.6 Installation durchführen

Aktualisieren Sie den Paketindex von Apt und führen Sie die Installation durch.

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

Damit ist die Docker-Installation abgeschlossen.

4 Verwenden Sie Docker

Ab hier ist die Produktion. Verwenden wir Docker tatsächlich gemäß Official Document.

4.1 Orientierung

Überprüfen Sie zunächst, ob Docker funktioniert.

4.1.1 Überprüfung der Version

Stellen Sie sicher, dass Docker wirklich installiert ist.

$ docker --version
Docker version 19.03.12, build 48a66213fe

Wurde gemacht.

4.1.2 Hallo Weltbild ausführen

Holen Sie sich das Hallo-Welt-Image.

$ docker run hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

Es ist leicht zu verstehen, was Sie tun, wenn Sie auf die folgende Website verweisen.

Einführung in Docker (2.) - Docker-Setup, Container-Start - | Sakura Knowledge

** Das offizielle Image "Hallo-Welt" im Container-Sharing-Service Docker Hub wird erfasst und der Container darauf basierend gestartet **.

Referenz: Hallo-Welt-Bildseite

4.1.3 Vergewissern Sie sich, dass das Bild heruntergeladen wurde

$ docker image ls

Sie können sehen, dass es ein Bild der Hallo-Welt gibt.

4.1.4 Vergewissern Sie sich, dass der Container gestartet ist

Docker Run ist kein Befehl zum Abrufen eines Images ursprünglich, sondern ein Befehl zum Starten eines Containers basierend auf einem Image. Daher sollte der Container gestartet werden.

$ docker ps --all

CONTAINER ID     IMAGE           COMMAND      CREATED            STATUS
54f4984ed6a8     hello-world     "/hello"     20 seconds ago     Exited (0) 19 seconds ago

Sicher wurde der Container bestätigt.

4.2 Image erstellen und Container ausführen

Jetzt, da Docker ausgeführt wird, ist es Zeit, das Image zu erstellen und auszuführen.

4.2.1 Erstellen Sie einen Git-Klon für die Bulletin Board-App

Klonen Sie die Bulletin Board App zum Testen.

$ git clone https://github.com/dockersamples/node-bulletin-board

4.2.2 Erstellen des Bildes

Erstellen Sie das Bild.

$ cd node-bulletin-board/bulletin-board-app
$ docker build --tag bulletinboard:1.0 .

Wie in 4.1.2 erwähnt, benötigen Sie ein Image, um den Container zu starten. Ich habe das offizielle Image in 4.1.2 mitgebracht, aber da es so viele Containerumgebungen wie Entwicklungsumgebungen gibt, benötigen Sie ein eigenes Image (wenn Sie danach suchen, können Sie möglicherweise das auf Docker Hub veröffentlichte Image verwenden. Aber). Beim Erstellen wird ** ein neues Bild basierend auf einem vorhandenen Bild (Basisbild) ** erstellt. Der Build wird an der Stelle ausgeführt, an der sich ** Dockerfile ** befindet, und er wird basierend auf der Dockerfile ausgeführt.

Werfen wir einen Blick auf die Docker-Datei.

Dockerfile


FROM node:current-slim

WORKDIR /usr/src/app
COPY package.json .
RUN npm install

EXPOSE 8080
CMD [ "npm", "start" ]

COPY . .

Beachten Sie den "FROM-Knoten: current-slim" in der ersten Zeile. Es ist eine Beschreibung, dass ein neues Image basierend auf dem Basis-Image "node: current-slim" erstellt wird. Ein Bild mit dem Namen "bullet inboard: 1.0.", Das das Argument des zuvor ausgeführten Befehls ist, wurde erstellt. Lassen Sie uns überprüfen, ob das Bild tatsächlich erstellt wurde.

$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
bulletinboard       1.0                 789f62d53520        13 minutes ago      177MB
node                current-slim        3aaf4acbaad7        2 days ago          159MB
hello-world         latest              bf756fb1ae65        10 months ago       13.3kB

Sie können das Basisbild und das erstellte Bild sehen.

4.2.3 Starten Sie den Container

Starten Sie den Container basierend auf dem erstellten Image.

$ docker run --publish 8000:8080 --detach --name bb bulletinboard:1.0

Sie können überprüfen, ob die Bulletin Board-App ausgeführt wird, indem Sie mit Ihrem Browser auf localhost: 8000 zugreifen. Schauen wir uns das genauer an.

4.2.3.1 --publish 8000:8080

8000 ist die Portnummer auf der Hostseite und 8080 ist die Portnummer auf der Containerseite.

4.2.3.2 --detach

Diese Option wird verwendet, wenn der Container im Hintergrund gestartet wird.

4.2.3.3 --name bb bulletinboard:1.0 Starten Sie einen Container mit dem Namen "bb" basierend auf dem Bild "bullet inboard: 1.0".

4.2.4 Behälter anhalten

Container stoppen / löschen.

docker rm --force bb

Jetzt haben Sie ein gutes Verständnis für Imagebildung und Containerisierung.

5 Endlich

Ich bin froh, dass ich eine ungefähre Vorstellung davon habe, wie eine Containerumgebung mit Docker erstellt und verteilt wird.

Bitte folgen Sie auch Twitter!

Recommended Posts

Nachdem ich Docker verstanden hatte, stellte ich es tatsächlich vor.
Verwenden wir es, nachdem wir sudo verstanden haben!
Ich habe Docker auf EC2 installiert und gestartet
Ich kann das Docker-Image nach dem Update auf Docker Desktop 2.4.0.0 nicht finden