-
- Build 16299 or later
- Hyper-V and Containers Windows feature
-
- Version 2004 or later
- WSL2
- Linux Kernel Update
-
- Installer only
-
- Depends on distro: Mainly add repo and install with packagemanager (Docker Engine)
-
- Virtualization turned on in the BIOS
- 64-Bit System
-
- Check that you have Build 19041 or higher:
- Drücke Windows + R
- Trage im Dialog:
winver
ein und klicke auf OK - Überprüfen Sie ihre Windows Version. Wenn nötig bitte updaten oder falls dies nicht möglich ist, Docker Toolbox installieren:
- Eine Powershell als Administrator ausführen:
- Folgende Kommandos ausführen:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- restart your machine
- Folgende Kommandos ausführen:
- Download Docker Desktop von DockerHub
- Führen Sie die Installation aus.
- Falls gefragt wird, stellen Sie sicher, dass
Enable Hyper-V Windows Features
ausgewählt ist.
- Check that you have Build 19041 or higher:
-
- Stellen Sie sicher, dass sie Windows Version 2004 or neuer haben:
- Drücken Sie Windows + R.
- Trage im Dialog:
winver
ein und klicke auf OK - Überprüfen Sie ihre Windows Version. Wenn nötig bitte updaten oder falls dies nicht möglich ist, Docker Toolbox installieren:
- Eine Powershell als Administrator ausführen:
- Folgende Kommandos ausführen:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- DEN PC NEUSTARTEN!!!
- Folgende Kommandos ausführen:
- Downloaden Sie das Linux Kernel Update und installieren Sie es.
- Downloaden Sie Docker Desktop von DockerHub
- Führen Sie die Installation aus.
- Falls gefragt wird, stellen Sie sicher, dass
Enable Hyper-V Windows Features
ausgewählt ist.
- Stellen Sie sicher, dass sie Windows Version 2004 or neuer haben:
-
- Downloaden Sie den Installer von Docker Hub
- Führen Sie den Installer aus. (Ziehen Sie Docker in ihren Applikation Ordner)
- Starten Sie Docker über das Launchpad oder suchen Sie mit Spotlight nach
Docker
und starten Sie dieses. - Bestätigen Sie den Dialog und geben Sie ihr Passwort ein. Dies schließt dann die Installation von Docker ab.
- Nach Der Installation sollte der Docker Wal in der Statusleiste vorhanden sein.
-
- Schauen Sie bitte in der Installationsanleitung für ihre Distro nach: Für gewöhnlich muss nur die Repo in den Paketmanager eingebunden werden und Docker dann damit installiert werden. (Docker Engine)
- CentOS
- Debian
- Fedora
- Ubuntu
-
- Fügen Sie ihren Nutzer die Gruppe
docker
hinzu. Dann müssen Sie die Docker Kommandos nicht als root ausführen.
- Fügen Sie ihren Nutzer die Gruppe
-
- Stellen Sie sicher, dass Virtualisierung in ihrem BIOS aktiviert ist. (Windows)
- Laden Sie sich die neueste Version von Docker Toolbox herunter. (exe für Windows, pkg für MacOS)
- Falls Sie bereits VirtualBox installiert haben, stoppen Sie VirtualBox
- Führen Sie die Installation aus.
- Falls Sie VirtualBox bereits installiert haben, wählen Sie VirtualBox in der Liste der zu installierenden Komponenten ab.
- Lassen Sie uns über eine paar Grundliegende Kommandos gehen.
-
- Um sicher zu gehen, dass die Installation erfolgreich war, können wir das Image
hello-world
ausführen.
Öffnen Sie ein Terminal und führen Sie folgendes Kommando aus:
docker run <image-name>
hier alsodocker run hello-world
Wenn alles erfolgreich installiert wurde, dann müssten Sie sowas im Terminal sehen:Die Ausgabe sagt ihnen folgendes:jan@DESKTOP-QNT1UI3:~$ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 0e03bdcc26d7: Pull complete Digest: sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9 Status: Downloaded newer image for hello-world:latest 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/
Unable to find image <image_name>:<image_tag> locally
- Das sagt ihnen, dass Sie das Image noch nicht heruntergeladen haben und Docker versucht eine Image mit dem Namen von Docker Hub herunterzuladen.
Hello from Docker!...
- Dies ist die Ausgabe des Containers und sagt ihnen, dass Docker erfolgreich installiert wurde.
- Um sicher zu gehen, dass die Installation erfolgreich war, können wir das Image
-
- Mit
docker ps
können Sie sich alle derzeit laufenden Container anzeigen lassen:- Wenn Sie jetzt
docker ps
ausführen, dann sehen Sie, dass kein Container läuft. Das hängt damit zusammen, dass derhello-world
Container direkt nach der ausgabe beendet wird. - Lassen sie uns einen
nginx
Container starten. - Führen sie das Kommando
docker run -d nginx
- Dies startet einen
nginx
Container imdetached
Modus - Die
-d
Flag ist für dendetached
Modus verantwortlich. Das bedeudet, dass der Container nicht im derzeitigen Terminal läuft, sonder sich im Hintergrund startet. - Sie können Docker Container auch mit der
--name <some-name>
Flag benennen. Zum Beispiel:docker run --name nginx-container -d nginx
- Dies startet einen
- Wenn Sie nun
docker ps
erneut ausführen, dann sehen Sie, dass dernginx
container läuft.
- Wenn Sie jetzt
- Mit
-
- Mit
docker stop <container>
können Sie einen laufenden Container löschen. - Ersetzen Sie
<container>
entweder mit dem vollständigen Namen oder einem Teil der ID. - Sie müssen nicht die komplette ID ausschreiben. Es reicht ein Teil, solange dieser eindeutig ist.
- Wenn zum Beispiel die Container ID:
b76c9507a43e
ist, dann können Sie einfachb76
schreiben, solange es keinen anderen Container gibt, dessen ID mitb76
beginnt. - You have to fully type the container names, but you can use the
tab
key for autocompletion
- Wenn zum Beispiel die Container ID:
- Wenn Sie nun
docker ps
erneut ausführen, dann sehen Sie, dass dernginx
Container nichtmehr aufgelistet wird. - Mit
docker ps -a
können Sie sich alle Container auflisten lassen. Dies beinhaltet auch gestoppte Container.
- Mit
-
- Dies ist das Gegenteil des Stop Kommandos und startet einen gestoppten Container wieder.
-
- Mit diesem Kommando kann man einen Container neustarten.
-
- Mit diesem Kommando kann man einen Container umbenennen
-
- Dieses Kommando erlaubt es
<command>
mit den Argumenten<args>
innerhalb des Containers auszuführen. Dies is zb. sinvoll, wenn man auf das Terminal eines Containers zugreifen will:docker exec -it <container> bash
- Dies führt im Container
<container>
das Kommandobash
im interactive Modus aus. -it
Diese Flagge sagt Docker, dass das Kommando im interactive Modus ausgeführt werden soll. Dies funktioniert auch mit demdocker run
Kommando.- Mit
exit
können Sie das Terminal des Containers wieder beenden.
- Dies führt im Container
- Dieses Kommando erlaubt es
-
- In Docker sind Container von dem Host System isoliert. Sie laufen in ihrem eigenen Netzwerk. Aus diesem Grund kann man ohne weiteres nicht auf die Ports eines Containers zugreifen. Man kann aber Ports eines Containers auf die Ports des Host-System Mappen
- Docker Container
EXPOSE
Ports die dann auf die Ports des Host-Systems gemapped werden können - Wir können mit der Flag
-p <local_port>:<container_port>
in Kombination mit demdocker run
Kommando ausführen. - Lassen Sie uns den Port
80
desnginx
container auf den Port81
unseres Systems mappen. Falls dernginx
Container noch läuft, beenden Sie diesen. - Nun starten wir ihn wieder, aber mappen die Ports wie oben beschrieben:
docker run -d -p 81:80 nginx
- Lassen Sie uns einmal über das Kommando gehen:
- Wir starten einen neuen Container mit dem
nginx
Image - Mit der
-d
Flage sagen wir, dass wir den Container im Hintergrund (detached) laufen lassen wollen. - Wir wollen den Container Port
80
als Port81
auf unserem Host-System erreichbar machen.
- Wir starten einen neuen Container mit dem
- Lassen Sie uns einmal über das Kommando gehen:
- Wenn wir nun
docker ps
erneut ausführen, sehen wir, dass der Port81
des Host-Systems, auf Port80
des Containers gemapped wurde. - Öffnen Sie einen Browser und besuchen Sie
http://localhost:81
. - Sie sollten die
Default nginx
Seite sehen.
-
- Lassen Sie sich zunächst alle laufenden Container anzeigen:
- Dies machen Sie mit
docker ps
- Nun stoppen Sie alle laufenden Container mit
docker stop
, wie oben beschrieben. - Überprüfen Sie mit
docker ps
, dass keine Container mehr laufen. Die Liste sollte leer sein, da das Kommando ja nur laufende Container anzeigt. - Nun lassen Sie sich die gestoppten Container mit
docker ps -a
anzeigen. - Nun können Sie mit
docker rm <container>
jeden Container löschen.- Dieses Kommando ist dem
docker stop
sehr änhlich. Der Unterschied zumdocker stop
Kommando ist jedoch der, dassstop
die Container nicht löscht, sonder nur stoppt. Er kann also wieder erneut gestartet werden.rm
(ReMove) hingegen löscht den Container (und damit gespeicherte Daten) - @Todo: Possibilty to link commands? eg: Delete all containers at once
- Dieses Kommando ist dem
-
Docker-Compose ist ein tool, dass es erlaubt, mehrer Docker Container zu einer Applikation zu bündeln und diese dann zu starten. Die Konfiguration findet über die
docker-compose.yml
statt. Diese enthält Anweisungen, wie Docker-Compose die Container zur Verfügung stellen soll.
Darin enthalten sind Dinge wie:- Welche Images
- In welcher Reihenfolge soll es gestartet werden
- Networking
- Volumes...
-
docker-compose up
- Mit
docker-compose up
kann eine multi-container Applikation gestartet werden. Das Tool guckt im derzeitigen Verzeichnis nach derdocker-compose.yml
.-d
Flag: Startet die Container imdetached
/ Hintergrund Modus
- Mit
docker-compose down
- Mit
docker-compose down
kann eine multi-container Applikation gestoppt werden. Das Tool guckt wie beidocker-compose up
im derzeitigen Verzeichnis nach einerdocker-compose.yml
-v
Flag: Gibt an, dass die in derdocker-compose.yml
definierten Volumes mit gelöscht werden sollen.
- Mit
docker-compose ps
- Mit
docker-compose ps
lassen sich die von Docker-Compose erstellten Container auflisten.
- Mit
-
- Das Postgres Image erlaubt es SQL Skripte beim erstellen auszuführen. Dazu müssen dann die
.sql
Dateien in/docker-entrypoint-initdb.d/
gemountet werden. Alternativ kann auch das Image per DOCKERFILE erweitert werden. Beispiel für MSSQL
- Das Postgres Image erlaubt es SQL Skripte beim erstellen auszuführen. Dazu müssen dann die
-
- Das gleiche geht auch beim MSSQL Image aber dort ist es leider mit ein wenig Arbeit verbunden Github Issue.
Hierbei wird über das Command Attribut in der docker-compose ein shell skript ausgeführt, das internsqlcmd
nutzt um ein sql skript auszuführen.
Beispiel für MSSQL
- Das gleiche geht auch beim MSSQL Image aber dort ist es leider mit ein wenig Arbeit verbunden Github Issue.