[PYTHON] [Einführung in Docker / Docker-Compose] Die neue Corona hat mein Haus länger gemacht, und ich wollte wechseln, aber ich konnte es wegen des Wiederverkäufers nicht kaufen, also habe ich etwas gemacht, das Mario sein könnte.

Zweck dieses Artikels

Wir planen, Docker-Compose im Videoprojektionssystem der Videogruppe im Kreis zu verwenden, aber da es viele Nicht-Ingenieure gibt, werden wir + Ausgabe üben, um sie zu erklären.

Start

Das ist Yoshitora. Ich wollte ein Video-Tool mit Docker-Compose und Raspi erstellen, also werde ich eine Einführung in Docker-Compose schreiben ...

Es kann schwierig sein zu lesen, weil es der erste Beitrag von Qiita ist ... Es tut mir leid ...

Aufgrund des neuen Koronavirus gibt es keine neuen Leistungen, und selbst wenn ich dem Labor zugewiesen wurde, musste ich von zu Hause aus arbeiten ... Das für das Labor zuständige Fakultätsmitglied las viel englische Literatur und sagte mir, ich solle mich daran gewöhnen, aber ich konnte nicht 24 Stunden am Tag mein Bestes geben.

Ich möchte einen Schalter als Pause kaufen und ein Spiel spielen ...

スクリーンショット (245).png

Verdammt ... Ich möchte, dass Wiederverkäufer und Coronas sterben ...

Also wollte ich es selbst machen. ~~ Leute, die in der Welt von Grund auf neu gewechselt haben, ich denke, ich werde es verbrennen oder in die Luft jagen ~ ~

Das zuständige Fakultätsmitglied schrieb locker, dass ich verschiedene Techniken berühren sollte, also denke ich darüber nach, Docker / Docker-Compose in der Infrastruktur der Video-Tools in der Gruppe zu verwenden, also werde ich es berühren.

Was diesmal zu erstellen

Als eine Praxis von Docker / Docker-Compose, die definitiv in Zukunft auf dem Web-System verwendet wird, werde ich etwas daraus machen,

Ich benutze Docker-Compose als Teilzeitjob, aber ich habe nichts erstellt, indem ich es von Grund auf neu eingestellt habe, also werde ich mein Bestes geben ...

Apropos Schalter, es ist Nintendo, Nintendo macht verschiedene Spiele und veröffentlicht sie, oder?

Der berühmteste von ihnen ist Mario, nicht wahr? Also werde ich etwas machen, das Mario sein kann.

Details darüber, was Sie tatsächlich machen

Apropos Mario, du zerstörst Blöcke am Straßenrand und kratzst Münzen und Gegenstände, oder? Also werde ich den Block auf dem PC anzeigen und etwas machen, das ein Geräusch macht, dass Sie bei jedem Klicken Münzen erhalten können

Über grobe Docker und Docker-Compose

Docker / Docker-Compose wird in der Web-Welt immer behandelt, nicht wahr? Kurz gesagt, ich persönlich denke, es ist ein sehr starkes Instrument, um Umweltproblemen vorzubeugen (es tut mir leid, wenn ich einen Fehler mache).

Der schwierigste Teil der Entwicklung besteht darin, die erste Umgebung zu erstellen, und es kommt häufig vor, dass dies nicht funktioniert, wenn Sie verschiedene Versionen installieren. Mit Docker / Docker-Compose können Sie jedoch die Umgebung (Version usw.) nach der Entscheidung erstellen, sodass dies nicht der Fall ist! !! ~~ Aber es gibt einen Fehler in Windows 10 Pro, Rails und Docker-Compose ... ~~

Erstellen Sie Docker / Docker-Compose

Selbst wenn Sie Docker / Docker-Compose verwenden, werden Sie diese Umgebungen zuerst erstellen! Das kann nicht entkommen

Diesmal machen wir es mit Ubuntu 18.04 lts So installieren Sie ubuntu18.04lts Wenn Sie befürchten, dass Sie es auf einem Computer installieren und die Originaldaten löschen könnten, sollten Sie eine virtuelle Box oder etwas anderes verwenden (Wenn Sie nicht verstehen, schreiben Sie einen Kommentar Artikel ...)

Docker installieren

Aktualisieren und aktualisieren Sie zunächst Ubuntu und installieren Sie die für die Docker-Installation erforderliche Software. Wenn Sie dies nicht tun, können Sie nichts tun

instal-software


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y \
     apt-transport-https \
     ca-certificates \
     curl \
     software-properties-common

Eine kurze Beschreibung der installierten Software lautet wie folgt

Software Kommentar
apt-transport-https Sicherheitsbezogen. Ist es eine Software, die die https-Kommunikation ermöglicht?
ca-certificates Dies hängt auch mit der Sicherheit zusammen. Handelt es sich um Software, die Zertifikate für SSL-Verbindungen verarbeitet?
curl Kommunikationsbezogen. Software, mit der Sie von Hand eine Verbindung zum Internet herstellen können.
software-properties-common Bezieht es sich auf Software-Management?

Wenn Sie es erfolgreich installieren können, werden viele Zeichen angezeigt und der Vorgang wird beendet

Installieren Sie als Nächstes GPG Public Key mit dem folgenden Befehl, damit Docker installiert werden kann.

install-GPGkey


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

Mit dem folgenden Befehl können Sie überprüfen, ob der Schlüssel erfolgreich installiert wurde

check-install-key


sudo apt-key fingerprint 0EBFCD88

Wenn nach dem Ergebnis der Ausführung des Befehls "Docker Release (CE deb) [email protected]" in die UID-Zeile geschrieben wird, ist dies erfolgreich.

Stellen Sie als Nächstes das apt-Repository so ein, dass es mit apt-get installiert werden kann. Grundsätzlich gibt es kein Problem, wenn Sie Stable of Docker installieren, sodass Sie es installieren können (es gibt andere Kanten und Tests !!).

Bitte beachten Sie, dass der Befehl je nach verwendeter CPU-Fraktion (?) Unterschiedlich ist ...

x86_64 (Intel oder AMD CPU)

x86_Wie in 64 zu tun


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

armhf (ARM CPU)

Wie man mit armhf umgeht


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

Aktualisieren Sie apt-get, um das Installationsergebnis wiederzugeben

update


sudo apt-get update

An dieser Stelle können Sie den Docker selbst installieren! Du hast es geschafft! Das Docker selbst kann mit dem folgenden Befehl installiert werden

docker-install


sudo apt-get install -y docker-ce

Das installierte Docker kann nicht ohne Administratorrechte (sudo) verwaltet werden, was sehr unpraktisch ist. Gewähren wir also Administratorrechte

add-docker-sudo


sudo usermod -aG docker $USER

Danach werde ich neu starten

Docker Hallo Welt und kurzer Kommentar / Bild

Mit dem folgenden Befehl können Sie die Hallo-Welt von Docker ausführen (testen, ob sie installiert wurde)

hello-world


docker run hello-world

Wenn Sie mit diesem Befehl das folgende Ergebnis sehen, ist es erfolgreich! Du hast es geschafft!

docker-hello-world-result


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

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Docker basiert auf der Idee unveränderlicher Anweisungen. Unveränderlich bedeutet unveränderlich / unverändert, Anweisung bedeutet Befehl Mit anderen Worten, wenn Sie sich für einen Befehl entscheiden, z. B. wie Sie sich nur am Anfang bewegen, werde ich ihn ab dem nächsten Mal verwenden.

Docker arbeitet mit dem folgenden Bild.

image.png

Der Docker-Container arbeitet mit dem folgenden Bild.

image.png

Installieren Sie Docker-Compose

Installieren Sie jetzt Docker-Compose! !! Um Docker-Compose zu installieren, installieren Sie das Hauptgerät direkt mit CURL. Da das Installationsziel jedoch ein Ort ist, für den Administratorrechte erforderlich sind, installieren Sie es mit CURL mit Administratorrechten (sudo).

Der folgende Befehl ist ein Befehl für die Installation. Da jedoch 1.25.5 im Befehl die Version von Docker-Compose ist, suchen Sie die Version, die Sie installieren möchten, unter Github von Docker-Compose und schreiben Sie den Befehl in diese Version (neueste Version). Release ist die neueste Version)

install-docker-compose


sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

Wie Docker ist Docker-Compose einfacher, Administratorrechte zu erteilen. Gewähren Sie es daher.

add-docker-compose-sudo


sudo chmod +x /usr/local/bin/docker-compose

Damit ist die Docker-Compose-Installation abgeschlossen! Du hast es geschafft!

Hallo Welt der Docker-Komposition und kurzer Kommentar / Bild

Lassen Sie uns die Hallo-Welt des Docker-Komponierens machen Erstellen Sie die folgende Datei docker-compose.yml

docker-compose.yml


version: '3.8'
services:
  hello:
    image: hello-world:latest

Führen Sie nach dem Erstellen den folgenden Befehl in der Hierarchie aus, in der sich die Datei befindet, um Docker-Compose zu starten.

docker-compose-run


docker-compose up

Das Ausführungsergebnis ist fast das gleiche wie in der Docker-Hallo-Welt Es ist kein Fehler, der zu ähnlich ist

Ein Container kann von Docker verwaltet werden, während Docker-Compose mehrere Container verarbeiten kann. Wenn Sie also docker-compose.yml wie folgt umschreiben, können Sie docker-compose verwenden, um die Hallo-Welt mehrerer Docker gleichzeitig zu erstellen (obwohl Sie dies normalerweise nicht tun).

docker-compose.yml


version: '3.8'
services:
  hello:
    image: hello-world:latest
  hello2:
    image: hello-world:latest

Wenn Sie mehr als eine verarbeiten können, können Sie zusätzlich zum Server der Site eine Datenbank einrichten, und der Umfang der möglichen Aktionen wird sofort erhöht.

Über Python und Flasche

Über Python

Python ist eine benutzerfreundliche Skriptsprache mit geringen Lernkosten Es gibt 2 Serien und 3 Serien in Python, aber ich denke, dass 3 Serien der Mainstream sind

Mit Python können Sie

--Maschinelles Lernen --Web Entwicklung

Sie können verschiedene Dinge tun, es ist stark

Über Flasche

Python-Webframework Ich habe das Gefühl, dass viele Menschen mehr in Django versunken sind, aber Django wird eine groß angelegte Entwicklung sein. Der Kolben kann dagegen im kleinen bis mittleren Maßstab entwickelt werden. Ich denke, Flask ist schon zum ersten Mal einfacher zu handhaben, weil die Lernkosten niedriger sind Dokumentation ist ebenfalls leicht und leicht zu lesen.

Führen Sie die Flasche auf Docker-Compose aus

Ordnerstruktur

folder/
       app.py
       Dockerfile
       docker-compose.yml

Erstellen einer Python-Datei

Erstellen Sie die folgende Datei

app.py


from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "Hello world"

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000)

Erstellen einer Docker-Datei

Dockerfile ist eine Datei, die schreibt, was zuerst ausgeführt werden soll, wenn Docker-Compose gestartet wird.

FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
RUN pip install flask
COPY . .
CMD ["flask", "run"]

Kommentar

Docker-compose.yml erstellen

Die Datei docker-compose.yml ist eine Datei, die die Umgebung des Containers in docker-compose festlegt.

docker-compose.yml


version: '3.8'
services:
  app:
    build: .
    ports:
      - "5000:5000"

Serverstart

Sie können es mit dem folgenden Befehl starten

docker-compose up

Gehen Sie nach dem Start zu http://0.0.0.0:5000 und Sie werden "Hallo Welt" sehen! Ich habs gemacht!

Sie können den Start mit Strg + C stoppen

Kommentar

Wenn Sie Docker-Compose ausführen, wird der Inhalt der Docker-Datei in der Reihenfolge von oben ausgeführt. Diesmal "Python-Image installieren", "Verzeichnis auf Container erstellen", "Umgebungsvariable festlegen (ENV)", "Erforderliche Software installieren", "Ausführen" usw. (ganz Es ist rau und kaputt, aber ...)

Schaffung

Es wurde erstellt-> https://github.com/KinoshitaYstr/mario Von github herunterladen und entpacken Wenn Sie es mit Docker-Compose im extrahierten Ordner starten und auf http: // localhost: 5000 zugreifen, wird ein Feld angezeigt. Klicken Sie auf das Feld, um Münzen zu erhalten (Bitte lassen Sie mich wissen, wenn Sie eine Code-Erklärung wünschen ...)

Ende

Jeder ist Mario damit, yafu

Nachwort

Wenn Sie von der Nintendo-Rechtsabteilung angestarrt werden, wird dieser Artikel privat gehalten oder gelöscht Außerdem möchte ich, dass Wiederverkäufer und Corona von der Rechtsabteilung von Nintendo angestarrt oder von Ichikyo Yen bestraft werden. Bitte lassen Sie mich wissen, wenn Sie einen Fehler machen ... Ich werde ihn beheben ...

Screenshot_20200501_213232_com.android.chrome.jpg Auf Wiedersehen…

Verweise

Verwendetes Material

Während ich dies schrieb, fragte ich mich, was ich tat, aber ich fragte mich, was ich tat ...

Recommended Posts

[Einführung in Docker / Docker-Compose] Die neue Corona hat mein Haus länger gemacht, und ich wollte wechseln, aber ich konnte es wegen des Wiederverkäufers nicht kaufen, also habe ich etwas gemacht, das Mario sein könnte.
Ich mag es nicht, mit der Veröffentlichung von Pokemon Go frustriert zu sein, deshalb habe ich ein Skript erstellt, um die Veröffentlichung zu erkennen und zu twittern
Ich wollte das Suchmodul von Ansible2 verwenden, aber es hat einige Zeit gedauert, machen Sie sich also eine Notiz
Ich habe versucht, die Texte von GReeeen zu visualisieren, die ich in meiner Jugend verrückt gehört habe, aber nicht mehr gehört habe.