# Docker Cheat Sheet ## Docker vs. Virtual Machines ![](https://writemd.rz.tuhh.de/uploads/892fba9c-6e82-4490-b385-46bc4281c150.png) ## Docker Installation ### Upgrade des Systems ``` sudo apt-get update && sudo apt-get upgrade ``` ### Docker mit hilfe des Installationsscripts Installieren **Ordner anlegen um das Script zu speichern** ``` mkdir dockerprj # Im Home Directory z.B. /home/username/dockerprj ``` ``` cd dockerprj ``` **Script download** ``` curl -fsSL https://get.docker.com -o get-docker.sh ``` **Script ausführen** ``` sudo sh get-docker.sh ``` ``` chmod +x get-docker.sh # Sollte sich das script nicht ausführen # lassen dann die Berechtigung x für execute # hinzufügen und den Befehl nochmal ausführen ``` ### Konfigurtation: Ausführen von Docker auch für Non root User ``` sudo usermod -aG docker [user_name] ``` ``` sudo usermod -aG docker itechpi # Username itechpi ``` ## Erste Schritte in Docker **Anzeige der Docker Version + weitere Information zur Docker-Installtion** ``` docker version # Docker Version anzeigen docker info # Docker Info anzeigen ``` ## Erstes Docker Script ausführen "Hello World" ``` docker run hello-world ``` ## Enable Docker um Docker beim Systemstart auszuführen ``` sudo systemctl enable docker ``` ## Docker HUB für ARM Architecturen wie auf dem Rasperry PI [Docker-Hub](https://registry.hub.docker.com/search?q=&type=image&architecture=arm%2Carm64) ## Installieren von Docker-Compose ``` sudo apt-get install libffi-dev libssl-dev sudo apt install python3-dev sudo apt-get install -y python3 python3-pip ``` ``` pip install docker-compose ``` ## Installieren einer Entwicklungs-Umgebung mit mysql (mariadb) und phpmyadmin via Docker-Compose ![](https://writemd.rz.tuhh.de/uploads/c8261c04-aea3-43af-9fde-913237bef0cf.png) [Docker-Hub phpmyAdmin + MariaDb](https://hub.docker.com/_/phpmyadmin) Docker-Compose.yml ``` version: '3.1' services: db: image: mariadb:10.3 restart: always environment: MYSQL_ROOT_PASSWORD: itechdb phpmyadmin: image: phpmyadmin restart: always ports: - 8080:80 environment: - PMA_ARBITRARY=1 ``` ``` vim docker-compose.yml ``` ``` docker-compose up ``` **Terminal-Zugriff auf einen Docker Container** ``` docker exec -i -t <Container-ID> /bin/bash ``` ## Docker MySQL DB mit volume docker run -d --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=itechsec2022 -e MYSQL_DATABASE=mywarehouse mysql:5.7