Stellen Sie Docker in Windows Home und führen Sie einen einfachen Webserver mit Python aus

Einführung

Ich wollte Docker studieren, also habe ich alles getan, von der Docker-Installation bis zum Ausführen eines einfachen Webservers mit Python im Docker-Container in der Windows 10 HOME-Umgebung (← wichtig), also werde ich es zusammenfassen. Das Verfahren enthält möglicherweise Auslassungen. Wenn also etwas schief geht, wäre ich Ihnen dankbar, wenn Sie einen Kommentar abgeben könnten.

Docker unter Windows

Zunächst läuft Docker unter LINUX OS. Um Docker unter Windows auszuführen, richten Sie daher eine virtuelle LINUX-Maschine ein und führen Sie die Docker-Engine darauf aus. Dies gilt sowohl für Windows 10 Pro als auch für Windows 10 Home. Die Abbildung unten. Wenn Sie Dokcer unter Linux links und Windows rechts ausführen.

image.png

(https://www.researchgate.net/figure/A-comparison-of-the-architecture-of-virtual-machines-and-Docker-software_fig4_299771559) "

Unterschiede zwischen Windows 10 Pro und Home bei Verwendung von Docker

Unter dem Strich verwendet Windows 10 Pro "Docker Desktop für Windows" und Windows 10 Home "Docker Toolbox". Der Grund für die ordnungsgemäße Verwendung ist, dass "Docker Desktop für Windows" Hyper-V als Hypervisor in der obigen Abbildung verwendet, Hyper-V jedoch unter Windows 10 Home nicht verwendet werden kann. Installieren Sie daher in Windows 10 Home "Docker Toolbox". "Docker Toolbox" verwendet die "Virtual Box" von Oracle als Hypervisor. Zusammenfassend ist es wie in der folgenden Abbildung gezeigt.

Windows 10 Pro Windows 10 Home
Hypervisier Hyper-V Virtuelle Box (etc.)
Doker Docker Desktop for Windows Docker Toolbox

Schritte zum Ausführen eines einfachen Webservers in einem Docker-Container

Auf dieser Grundlage wird das Verfahren zum Ausführen eines einfachen Webservers beschrieben, auf dem die folgenden Seiten in der Windows 10 Home-Umgebung im Docker-Container angezeigt werden. (Es kann Auslassungen geben) image.png

Installieren Sie Docker

Installieren Sie zunächst die Docker Toolbox. Die Vorgehensweise wird jedoch unter Hinweis zur Installation von Docker in Windows 10 Home - Qiita beschrieben, sodass sie plötzlich weggelassen wird. Machen.

Werfen Sie einen Blick in die VM, die in Virtual Box ausgeführt wird

Als nächstes wollen wir sehen, was in der VM vor sich geht, auf der der Docker-Container ausgeführt wird.

python


C:\Users\hogehoge\workspace\pythondocker>docker-machine ssh default
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)           www.tinycorelinux.net

docker@default:~$ 

Sie befinden sich jetzt in einer VM mit dem Namen default.

Wechseln Sie in das Stammverzeichnis der VM und zeigen Sie die im Stammordner gespeicherten Ordner / Dateien an

Gehen Sie zum Stammverzeichnis der VM und zeigen Sie sie an


docker@default:~$ cd /
docker@default:/$ ls
home          mnt           run           tmp
bin           init          opt           sbin          usr
c             lib           proc          squashfs.tgz  var
dev           lib64         sys           etc           linuxrc
root 

Das Laufwerk C im aktuellen Windows-Betriebssystem befindet sich im Ordner "c" oben. Wenn Sie also direkt unter C auf der VM zugreifen, tun Sie etwas wie "cd / c /".

Wechseln Sie zu Laufwerk C, das auf der VM bereitgestellt ist, und zeigen Sie es an


docker@default:/$ cd /c/ 
docker@default:/c$ ls
Users

`` `Beenden``` Befehl beim Beenden der VM

Raus aus der VM


docker@default:/c$ exit
logout
exit status 127

Bereiten Sie die Struktur von Ordnern und Dateien vor

Bereiten Sie Ordner und Dateien in einem geeigneten Arbeitsverzeichnis mit der folgenden Struktur vor.

pythondocker/  :Arbeitsverzeichnis auf der Windows-Seite
 ├ cgi-bin/    :Ordner zum Speichern von Python-Skripten, die im Docker-Container ausgeführt werden
 │ └ index.py  :Richten Sie einen einfachen Webserver ein und veröffentlichen Sie die Seite
 └ Dockerfile  :Docker-Datei

Schreiben Sie eine Docker-Datei

Erstellen Sie eine Docker-Datei wie folgt.

pythondocker/Dockerfile


# python3.6.Holen Sie sich 9 Docker-Bilder
#Wenn Sie glauben, Python auf Ihrem Docker-Image installiert zu haben
FROM python:3.6.9
#Geben Sie das Arbeitsverzeichnis im Docker-Container an
WORKDIR /app
#Windows./cgi-Bin-Ordner, App im Docker-Container/cgi-In den Papierkorb kopieren
#Auf diese Weise, cgi-Sie können in Docker unter bin auf Dateien zugreifen
COPY ./cgi-bin /app/cgi-bin
#Inside Docker "Python CGI-bin/index.Führen Sie den Befehl "py" aus
CMD ["python", "cgi-bin/index.py"]

Die in dieser Docker-Datei beschriebenen Befehle werden beim Erstellen des Docker-Images von oben ausgeführt.

Erstellen Sie ein Python-Skript, um eine Webseite zu veröffentlichen

Erstellen Sie eine "index.py" -Datei im Ordner "python docker / cgi-bin". Dies ist ein Python-Skript zum Einrichten eines einfachen Webservers in einem Docker-Container und zum Veröffentlichen einer Seite auf Port 8080. Wenn ich auf den veröffentlichten Webserver zugreife, wird "Hallo Python Docker auf Widows 10 Home!" Angezeigt.

pythondocker/cgi-bin/index.py


import http.server
import socketserver

LISTEN_PORT = 8080

class ServerHandler(http.server.SimpleHTTPRequestHandler):

    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write(b"<h1>Hello Python Docker on Widows 10 Home!</h1>")

if __name__ == "__main__":
    HOST, PORT = '', LISTEN_PORT

    with socketserver.TCPServer((HOST, PORT), ServerHandler) as server:
        server.serve_forever()

Erstellen Sie ein Docker-Image

Erstellen Sie als Nächstes ein Docker-Image basierend auf der erstellten Docker-Datei. Starten Sie eine entsprechende Konsole (Eingabeaufforderung usw.), wechseln Sie in den Pythondocker-Ordner und

#Bewegung
C:\Users\hogehoge\workspace>cd pythondocker
#Überprüfen Sie mit dir
C:\Users\hogehoge\workspace\pythondocker>dir
Die Datenträgerbezeichnung für Laufwerk C lautet Windows
Die Seriennummer des Volumens lautet 1273-2EFA

 C:\Users\hogehoge\workspace\Pythonondocker-Verzeichnis

2020/05/05  17:03    <DIR>          .
2020/05/05  17:03    <DIR>          ..
2020/05/05  17:00    <DIR>          cgi-bin
2020/05/06  16:05               581 Dockerfile
1 Datei 581 Bytes
3 Verzeichnisse 151,054,426,112 Bytes freier Speicherplatz

Führen Sie den Docker-Build-Befehl aus, um das Docker-Image zu erstellen

Docker Image Build-Befehl


C:\Users\hogehoge\workspace\pythondocker>docker build --tag=hellopython .
# --tag :Bild-Tag
# .     :Zeigt den Pfad zu dem Ordner an, in dem sich die Docker-Datei befindet

Erfolg, wenn die folgende Ausgabe ausgegeben wird

Ausgabe des Build-Befehls


Sending build context to Docker daemon  4.608kB
Step 1/4 : FROM python:3.6.9
3.6.9: Pulling from library/python
16ea0e8c8879: Pull complete
50024b0106d5: Pull complete
ff95660c6937: Pull complete
9c7d0e5c0bc2: Pull complete
29c4fb388fdf: Pull complete
49a8841b38a3: Pull complete
c4a74b0ecce5: Pull complete
3e19e7d95a0c: Pull complete
c6c6b4054fe6: Pull complete
Digest: sha256:47e547af7ffcc2f5d1e5c76a96f4122943c4631d10bb3a0375e870fd95799107
Status: Downloaded newer image for python:3.6.9
 ---> 5bf410ee7bb2
Step 2/4 : WORKDIR /app
 ---> Running in 79bc620b5bcb
Removing intermediate container 79bc620b5bcb
 ---> 253f4f561100
Step 3/4 : COPY ./cgi-bin /app/cgi-bin
 ---> 2a4c59e6f250
Step 4/4 : CMD ["python", "cgi-bin/index.py"]
 ---> Running in f85f3c374389
Removing intermediate container f85f3c374389
 ---> 9f8b8e3b53d2
Successfully built 9f8b8e3b53d2
Successfully tagged hellopython:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

Es gibt eine Sicherheitswarnung, die Sie jedoch vorerst ignorieren.

Überprüfen Sie, ob das erstellte Docker-Image ordnungsgemäß erstellt wurde

Überprüfen Sie das Docker-Image


C:\Users\hogehoge\workspace\pythondocker>docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hellopython         latest              8a31f9eb38e3        33 minutes ago      913MB

Führen Sie das erstellte Docker-Image aus

Führen Sie das gerade erstellte Docker-Image aus und führen Sie den Webserver im Docker-Container aus. Führen Sie das Docker-Image hellopython aus, das mit dem Befehl `` `docker run``` erstellt wurde.

Führen Sie das Docker-Image aus


docker run --rm -p 4000:8080 -v /c/Pfad vom Laufwerk C zum Python Docker-Ordner/cgi-bin/:/app/cgi-bin/ -d hellopython

docker runEine Beschreibung der Befehlsoptionen lautet wie folgt:

---- rm: Option zum Stoppen = Löschen

Überprüfen Sie vorerst den laufenden Docker Container

Docker Container Check


C:\Users\hogehoge\workspace\pythondocker>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES 
eb3bf047d160        9f8b8e3b53d2        "python cgi-bin/inde…"   About an hour ago   Up About an hour    0.0.0.0:4000->8080/tcp   epic_jang

Greifen Sie auf einen Webserver zu, der in einem Docker-Container ausgeführt wird

Greifen Sie abschließend auf den Webserver zu, der im Docker-Container ausgeführt wird, und zeigen Sie ihn im Browser an. Überprüfen Sie zunächst die IP-Adresse der VM, auf der der Docker-Container ausgeführt wird.

VM IP-Bestätigung


C:\Users\hogehoge\workspace\pythondocker>docker-machine ip
192.168.99.100

Wenn Sie danach im Browser auf "http: // : 4000" zugreifen, sollte die Webseite wie unten gezeigt angezeigt werden. (In meinem Fall http://192.168.99.100:4000/)

image.png

Referenzierte Site

Ich habe auf die folgende Seite verwiesen.

Recommended Posts

Stellen Sie Docker in Windows Home und führen Sie einen einfachen Webserver mit Python aus
Starten Sie mit Docker einen einfachen Python-Webserver
Führen Sie eine Python-Webanwendung mit Docker aus
Starten Sie einen Webserver mit Python und Flask
Führen Sie einen einfachen Algorithmus in Python aus
Janken Poi mit Python Lassen Sie uns für Anfänger auf einem lokalen Windows-Server laufen
Richten Sie mit Python 3 einen einfachen HTTPS-Server ein
Richten Sie einen einfachen SMTP-Server in Python ein
Einführung und Verwendung der Python-Flasche ・ Versuchen Sie, einen einfachen Webserver mit Anmeldefunktion einzurichten
Bis Python mit Pythonbrew installiert ist und Flask auf dem WSGI-Server ausgeführt wird
[Python] So erstellen Sie eine lokale Webserverumgebung mit SimpleHTTPServer und CGIHTTPServer
Erstellen Sie einen einfachen Slackbot mit einer interaktiven Schaltfläche in Python
Versuchen Sie, ein einfaches Spiel mit Python 3 und iPhone zu erstellen
Starten Sie mit Docker eine Python-Webanwendung auf Nginx + Gunicorn
Führen Sie eine Python-Datei mit relativem Import in PyCharm aus
Erstellen Sie mit Quarry einen gefälschten Minecraft-Server in Python
[Vagrant] Richten Sie einen einfachen API-Server mit Python ein
Führen Sie Python mit PyCharm aus (Windows)
Hello World mit einem einfachen Webserver, der WSGI (Web Server Gateway Interface) in Python folgt
Bis Sie mit Python unter Windows 7 eine maschinelle Lernumgebung erstellen und ausführen
[Erstellen einer CI-Umgebung in 2 Stunden] Verfahren zum Erstellen eines Python-Webservers mit CircleCI und zum Bestehen eines HTTP-Kommunikationstests
Ich habe ein einfaches Tippspiel mit tkinter of Python gemacht
Erstellen Sie mit VSCode & Docker Desktop eine einfache Python-Entwicklungsumgebung
Bibliothek zur Angabe eines Nameservers in Python und Dig
So starten Sie einen einfachen WEB-Server, der CGI von PHP und Python ausführen kann
Setzen Sie Ubuntu in Raspi ein, setzen Sie Docker darauf und steuern Sie GPIO mit Python aus dem Container
Drücken Sie einen Befehl in Python (Windows)
Setzen Sie MeCab in "Windows 10; Python3.5 (64bit)"
Erstellen eines Flask-Servers mit Docker
Bis Sie Python in Docker einfügen
Implementierung eines einfachen Algorithmus in Python 2
Ich habe eine einfache Schaltung mit Python gemacht (AND, OR, NOR, etc.)
Erstellen Sie eine 64-Bit-Python 2.7-Umgebung mit TDM-GCC und MinGW-w64 unter Windows 7
Erstellen Sie mit Python und OpenCV ein einfaches OMR (Mark Sheet Reader)
Zeichnen Sie eine Aquarellillusion mit Kantenerkennung in Python3 und openCV3
Aufbau einer LaTeX- und R-Umgebung (ein wenig Python) mit SublimeText3 (Windows)
Führen Sie den Ausgabecode auf dem lokalen Webserver in Python als "A, gibt vor, B zu sein" aus
Spiralbuch in Python! Python mit einem Spiralbuch! (Kapitel 14 ~)
Erstellen einer einfachen Power-Datei mit Python
Setzen Sie Cabocha 0.68 in Windows ein und versuchen Sie, die Abhängigkeit mit Python zu analysieren
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
Ein einfacher HTTP-Client, der in Python implementiert ist
Ich habe Alpine Linux in Larkbox eingefügt und es zu meinem Heimserver gemacht
Verwenden von venv in der Windows + Docker-Umgebung [Python]
Richten Sie mit Docker einen Samba-Server ein
Versuchen Sie, eine einfache Animation in Python zu zeichnen
Setzen Sie OpenCV in OS X mit Homebrew ein und geben Sie Video mit Python ein / aus
Erstellen Sie eine einfache GUI-App in Python
Lassen Sie uns JavaScript wegwerfen und ein Web-Frontend in Python schreiben!
Ein Memo mit Python2.7 und Python3 in CentOS
Erstellen einer Python 3.6-Umgebung mit Windows + PowerShell
[Python] [Windows] Machen Sie eine Bildschirmaufnahme mit Python
Erstellen Sie eine Entwicklungsumgebung mit Jupyter und Flask mit Python in Docker (unterstützt sowohl VS Code als auch Code-Server).
Dämonisieren Sie eine Python-Webanwendung mit Supervisor
Einfache Serverüberwachung mit AWS Lambda (Python) und Ergebnisbenachrichtigung mit Slack
Führen Sie den Python-Interpreter im Skript aus
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
Finden Sie heraus, wie alt ein Baseballspieler mit Python und Stan eine Heimatbasis erreichen kann