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.
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.
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 **.
Folgen Sie den Offiziellen Dokumenten, um Docker auf Ubuntu zu installieren.
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.
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
$ 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.
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.)
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.
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.
Mit anderen Worten, es scheint, dass zur Installation von Docker das GPG von Docker in den lokalen App-Schlüssel importiert werden muss.
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]
$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.
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.
Ab hier ist die Produktion. Verwenden wir Docker tatsächlich gemäß Official Document.
Überprüfen Sie zunächst, ob Docker funktioniert.
Stellen Sie sicher, dass Docker wirklich installiert ist.
$ docker --version
Docker version 19.03.12, build 48a66213fe
Wurde gemacht.
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
$ docker image ls
Sie können sehen, dass es ein Bild der Hallo-Welt gibt.
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.
Jetzt, da Docker ausgeführt wird, ist es Zeit, das Image zu erstellen und auszuführen.
Klonen Sie die Bulletin Board App zum Testen.
$ git clone https://github.com/dockersamples/node-bulletin-board
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.
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".
Container stoppen / löschen.
docker rm --force bb
Jetzt haben Sie ein gutes Verständnis für Imagebildung und Containerisierung.
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!