# Docker Cheat Sheet
## Docker vs. Virtual Machines

## 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

[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