[Docker von 0 herausfordern] Übersicht und Bedingungen von Docker

Hintergrund

Ich möchte einen Job in einem eigens entwickelten Unternehmen von unerfahrenen bekommen. Ich habe mich entschlossen, Docker zu studieren, um ein gutes Portfolio zu erstellen.

Die Wissensstufe ist eine Stufe, die mit Ruby on Rails, Versionsverwaltung mit Git einfach entwickelt und mit Heroku bereitgestellt werden kann. Außerdem habe ich nicht viel Linux- oder Netzwerkstudien durchgeführt, um Docker zu lernen. Ich hoffe, es wird denjenigen helfen, die daran denken, Docker in Zukunft auf der gleichen Ebene wie ihr eigenes Memorandum auszuprobieren.

Endziele

Informationen zur Docker-Übersicht und Terminologie

Was ist Docker?

Per Definition ist es eine "Plattform zum Erstellen, Verteilen und Ausführen von virtuellen Umgebungen vom Containertyp". Um ehrlich zu sein, selbst wenn diese Erklärung Anfängern gegeben wird, fällt sie mir nicht ein, also auf meine eigene Weise,

** "Wirf einen in der Umgebung gebauten PC, damit er an verschiedenen Orten verwendet werden kann" **

ist. Vielleicht ist jemand, der eine einfache Anwendung in Rails schreibt, auf verschiedene Fehler gestoßen. Ich denke, das störendste davon sind Umweltfehler (persönlich). In einigen Fällen gab es auch so etwas wie "Es funktioniert gut in der Entwicklungsumgebung, aber es funktioniert nicht in der Produktionsumgebung !!". Wie Sie sich ohne Erfahrung vorstellen können, sind auf dem tatsächlichen Gebiet mehr Bibliotheken und Tools eng miteinander verbunden, und Sie müssen die Anwendung in verschiedenen Umgebungen wie Produktion und Entwicklung ausführen. Darüber hinaus sind nicht immer dieselben Betriebssysteme, Geräte, Server usw. vorbereitet, und es ist erforderlich, die Umgebung für jedes Betriebssystem einzeln festzulegen. Angesichts dessen ist es leicht vorstellbar, dass die Einrichtung der Umwelt und die Übernahme der Umwelt äußerst schwierig ist.

In einem solchen Fall wäre es sehr einfach, wenn wir für jeden PC unterschiedliche Umgebungseinstellungen und Bibliotheksabhängigkeiten festlegen könnten, damit sie in jeder Umgebung übernommen werden können. Docker hat dies mit virtueller Technologie ermöglicht. Docker soll eine Containertechnologie sein, aber es ist, als würde man die gesamten PC-Umgebungseinstellungen in eine Box packen, die als Container bezeichnet wird.

Vorteile von Docker

Die Verwendung von Docker bietet vier Hauptvorteile. ・ Es gibt keinen Unterschied zwischen Umgebungen ・ Da die Umgebung in Code geschrieben ist, ist sie auch danach leicht zu verstehen. ・ Einfache Erstellung einer Umgebung ・ Einfache Aufgabe der Umgebung ・ Leichte Bewegung

Ich hatte das Gefühl, dass der oben genannte Vorteil leicht zu verstehen ist, wenn ich den Mechanismus und die Verwendung der Docker-Technologie verstehe.

Bedienung und Mechanismus von Docker

Flow bei Verwendung von Docker

Die Arbeit mit Containern in Docker umfasst vier Schritte.

Dockerfile ist einfach ein Text, der die Umgebungseinstellungen und die Aktionen beschreibt, die Sie in der Umgebung ausführen möchten. Beschreiben Sie beispielsweise, welche Version des Tools verwendet werden soll. Aus dieser Datei wird das Docker-Image von ② generiert. Ein Docker-Bild ist einfach wie eine Konstruktionszeichnung. Erstellen Sie dann einen Container (Entität) basierend auf dem Bild (Konstruktionszeichnung) von ②. Für diejenigen, die Rubin studiert haben, ist es möglicherweise einfacher, die Beziehung zwischen Klasse und Instanz für ② und ③ zu verstehen. Führen Sie dann den Container aus und löschen Sie ihn, wenn Sie ihn nicht mehr benötigen.

Wie oben erwähnt, besteht die Stärke von Docker darin, dass Sie auf einfache Weise ein Docker-Bild (Entwurfszeichnung) erstellen können, indem Sie die Umgebungseinstellungen als Sätze in einer Docker-Datei (Textdatei) beschreiben. Wenn sich etwas ändert, können Sie die Beschreibung der Docker-Datei ändern und das Docker-Image erstellen / freigeben, um in jeder Umgebung denselben Vorgang auszuführen.

Wie Docker funktioniert

Sie haben vielleicht die Stärke von Docker verstanden, aber "Ist es nicht in Ordnung, mit virtualBOX eine virtuelle Umgebung auf einem PC in allen Entwicklungsumgebungen zu erstellen und dann dasselbe Betriebssystem darauf zu installieren?" Einige mögen denken (ich bin vielleicht der einzige). Eine weitere Stärke von Docker ist seine Leichtigkeit. In einer normalen virtuellen Umgebung ist es erforderlich, alles wie das virtuelle Betriebssystem und die virtuelle CPU auf dem Host-Betriebssystem zu erstellen. Auf der anderen Seite ist Docker dieselbe virtuelle Technologie, nutzt jedoch die Leistung des Kernels auf dem Host-Betriebssystem, sodass keine virtuelle Umgebung von Grund auf neu erstellt werden muss. Daher ist die Bedienung von Docker sehr leicht.

Docker Glossar

Docker hat verschiedene Funktionen und eindeutige Namen. Ich möchte die Wörter, die ich wahrscheinlich in Zukunft sehen werde, in meinen eigenen Worten zusammenfassen.

Docker-Container

Es ist eine Box, die das Betriebssystem und die Bibliotheken enthält. Sie können hier Umgebungseinstellungen vornehmen und verschiedene Anwendungen ausführen. Sie können beispielsweise eine Rails-Anwendung darüber erstellen, indem Sie eine Box mit den Bibliotheken macOS und Rails erstellen. Sie können die gesamte Box bei der Migration in eine andere Umgebung übergeben, sodass Sie nicht nur den Rails-Code, sondern auch die zugrunde liegenden Einstellungen problemlos migrieren können.

Docker-Bild

Es ist eine Konstruktionszeichnung des Docker-Containers. Aus dem Docker-Image wird ein Docker-Container erstellt. Entspricht der Beziehung zwischen Klasse und Instanz bei der objektorientierten Programmierung. Das Docker-Image ist eine Klasse (keine Realität, so etwas wie eine Definition) und der Docker-Container ist eine Instanz (der Ort, an dem es tatsächlich funktioniert).

Docker file Dies ist eine Datei zum Erstellen eines Docker-Images. Schreiben Sie hier Informationen, um das Bild zu definieren. Schreiben Sie diese Datei und erstellen Sie (geben Sie den Befehl build ein), um ein Docker-Image zu erstellen. Docker kann den Container einfach bearbeiten und ein Originalbild erstellen, da die Umgebungseinstellungen in dieser Docker-Datei in Zeichen geschrieben sind.

Docker hub Eine Site mit vielen Docker-Bildern. Es ist wie die Docker-Version von Gitgub. Sie können verschiedene Docker-Images auf Ihrem eigenen PC erstellen und Ihre eigenen Docker-Images hochladen. Die auf dem Dockerhub veröffentlichten Bilder können von anderen angezeigt werden, sodass Sie Ihre ursprünglichen Docker-Bilder problemlos freigeben können.

Docker machine Eine Umgebung, in der Sie einen Docker-Container überall ausführen können. Mit Docker maxhine können Sie Docker-Container auf Ihrem lokalen PC oder in der Cloud betreiben.

Docker compose Zum Betrieb mehrerer Container. Da sich ein Container wie ein Container und eine Funktion anfühlt, müssen beim Verwalten von Anwendungen mit Containern mehrere Container für Datenbanken und Webserver vorbereitet werden. Docker Compose erleichtert dann die Verwaltung mehrerer Container.

Docker Demon Das Herzstück der Containertechnologie. Es liegt an diesem Dämon, den Container zu starten und zu bestellen.

Zusammenfassung / Eindruck

Wenn Sie nur eine Einführung in die Programmierung waren, dauerte es einige Zeit, um zu verstehen, was Docker war und wofür es war. Da es nur wenige Einführungsbücher gibt, scheint es außerdem ein wenig schwierig zu sein, damit anzufangen. Wenn ich es jedoch wieder zusammenstelle, habe ich das Gefühl, Docker organisieren zu können.

[Artikel ab dem nächsten Mal] [Docker von 0 herausfordern] Erstellen Sie eine Entwicklungsumgebung für Ruby on Rails / MYSQL mit Docker und Docker-compose (Teil 1) [[Docker von 0 herausfordern] Erstellen Sie eine Entwicklungsumgebung für Ruby on Rails / MYSQL mit Docker und Docker-compose (Teil 2)] (https://qiita.com/shu1124/items/5399ef69f940e5e19d59) [Docker von 0 herausfordern] Erstellen Sie mit Docker eine Entwicklungsumgebung für Nginx, Puma, Rails6.0 und MySQL.

Hilfreiche Unterrichtsmaterialien / Artikel

"Ich habe gerade mit Docker begonnen und es daher leicht verständlich zusammengefasst." https://qiita.com/gold-kou/items/44860fbda1a34a001fc1 → Es deckt sehr fein ab. Ich sehe es oft als Überweisung.

"Docker-Kurs von US-KI-Entwicklern von Grund auf unterrichtet" https://www.udemy.com/course/aidocker/ → Wenn ein Anfänger Docker lernt, ist es das! !! !! Wahnsinnig leicht zu verstehen! !! !! Es behandelt die Umgebungskonstruktion mit Docker aus den Grundlagen von Linux.

"Einführung in die praktische Containerentwicklung für Docker / Kubernetes - Akinori Yamada" → Praktische Bücher, für Anfänger kann es etwas schwierig sein.

"Lernen Sie die Grundlagen in nur einem Tag! Docker / Kubernetes Super Introduction - Author" → Wenn ein Anfänger aus Büchern lernen möchte, ist dies ein einfacher Einstieg.

Recommended Posts

[Docker von 0 herausfordern] Übersicht und Bedingungen von Docker
Fordern Sie die Installation von WSL2 und Docker heraus
Beendigung von Docker und Kubernetes: Nachfrist von SIGTERM bis SIGKILL
[Herausforderung CircleCI von 0] Lernen Sie die Grundlagen von CircleCI
Einführung von Docker Hub und Befehlen Selbstlernend ①
Erfahren Sie mehr über das Docker-Image und das FROM der Docker-Datei
Einfache Installation von Nginx und Docker mit ansible
[Java] Übersicht über Java
Zusammenfassung der häufig verwendeten Befehle in Rails und Docker
ArrayList und die Rolle der Schnittstelle aus List
Band 3 Arten von Docker Compose aus dem Zweck betrachtet
Überprüfung der Beziehung zwischen dem Docker-Image und dem Container
Einführung von Docker - Teil 1--
Docker-Installation und -Initialisierung
[Begriffe] Statisch und dynamisch
Übersicht über Spring AOP
[Zusammenfassung der technischen Bücher] Zusammenfassung der Lektüre "Lernen Sie Docker aus den Grundlagen"
Japanische Lokalisierung des Docker-Containers von CentOS7 / CentOS8 und Einstellung der japanischen Zeit