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.
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.
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 |
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)
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.
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 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
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 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 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 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 run
Eine 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 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: //
Ich habe auf die folgende Seite verwiesen.