--Linux (Ubuntu) unter Windows installieren
--WSL auf Version 2 setzen und dann installieren
wsl --set-default-version 2

-- Prüfen der Versionen
wsl -l -v



-- Prüfen ob Docker installiert ist / Groß-/Kleinschreibung beachten
Docker Version ???
docker version !!!

-- Achtung, prüfen ob Dienst läuft

-- Liste sämtlicher Images
Docker images

-- Liste aktiver Container
Docker ps


-- Container aus dem Repository holen/ quelle docker
docker pull docker/getting-started

-- leer da Fehler
docker run docker/getting-started
-- Liste aller laufender Container
Docker ps


-- Mein erstes Hello World
docker run -d -p 80:80 docker/getting-started
-- Liste aktiver Container nach hello World? 
Docker ps 




-- Ubuntu
--https://hub.docker.com/_/ubuntu

docker pull ubuntu
docker run -it ubuntu bash

-- in der Bash oder mit Exec 
-- ls 
-- uname
-- touch AEK2022
-- exit

-- Achtung, jedes docker run lädt im Standard einen neuen Container aus dem Image.


-- spezifische Version direkt starten
docker run -it ubuntu:21.10

docker images
docker ps

--löschen der Container
docker rm XXXXXXX
-- Fehler wenn Container noch läuft
docker stop XXXX
docker rm XXXXXXX

docker rm -f XXXXXXX
--oder
docker kill XXXX

-- Webserver apache oder nginx
--https://hub.docker.com/_/nginx

docker run -d nginx

docker ps
docker logs XXXX


docker run -d nginx
docker run -d nginx
docker run -d nginx

docker ps

-- Achtung docker hat jetzt mehrere Container auf Port 80, da Container gekapselt sind

docker kill XXXX YYYYY ZZZZZ
docker ps
docker ps -a


--Aufräumen, Bestätigung und anders als in Linux
docker system prune 


-- OK mal vollständig (TCP durch P ansonsten mit paramter für UDP oder Beides 2 Ports vergeben)
docker run --name AEK2022NGINX -p 8080:80 -d nginx

-- aufräumen und Pfad mappen
-- Script Order -> mit cd in den Ordner gehen 
docker run --name AEK2022NGINX -p 8080:80 -v ${PWD}:/usr/share/nginx/html -d nginx



-- image selber bauen
-- Dockerfile -> mit cd in den Ordner gehen 
docker build -d apache2 .

-- Fehler da 80 schon belegt -> Portweiterleitung 8080 lokal auf 80 im Container

docker run -d -p 8080:80 apache2


-- einloggen in Docker
docker login

-- wenn nicht über GitHub sondern docker hub gearbeitet wird
-- eigene Bereich, da im öffentlichen Raum nicht möglich
-- Tag führt das Image über 2 Namen mit gleicher GUID
docker tag apache2 BenutzerName\apache2


-- Privates Repository in Docker anlegen
docker push BenutzerName\apache2

-- fortan kann mit Docker PULL / Run vom 2ten PC geladen werden
docker pull BenutzerName\apache2

docker run -d -p 8080:80 apache2

