Docker CheatSheet

Enkele veelvoorkomende docker opdrachtregelparameters

Inhoud

Hier is een Docker cheat sheet
die de belangrijkste opdrachten en concepten behandelt van installeren tot het draaien van containers en het opruimen:

docker logo

Installatie

Op Ubuntu

sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt install docker-ce
sudo systemctl start docker

Installatie van Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
``").

## Algemene Docker Opdrachten
### Versie en Systeeminfo
```bash
docker version          # Toont de versies van de Docker CLI en daemon
docker system info      # Lijst gegevens over je Docker-omgeving
docker help             # Bekijk het help-index
docker <command> --help # Bekijk hulpinformatie voor een specifieke opdracht

Aanmelden en Afmelden

docker login            # Aanmelden bij Docker Hub
docker logout           # Afmelden van Docker Hub

Beheer van Afbeeldingen

Lijst Afbeeldingen

docker images           # Lijst alle afbeeldingen
docker images -a        # Lijst alle afbeeldingen, inclusief tussenliggende afbeeldingen

Afbeeldingen Ophalen

docker pull <image-name:version> # Download een afbeelding van Docker Hub

Afbeeldingen Bouwen

docker build -t <image-name> . # Bouw een afbeelding vanuit de huidige directory's Dockerfile
docker build -f <Dockerfile-path> -t <image-name> . # Bouw een afbeelding vanuit een specifieke Dockerfile
docker build --build-arg foo=bar . # Bouw een afbeelding met bouwargumenten
docker build --pull . # Ophalen van bijgewerkte versies van afbeeldingen die in FROM instructies worden verwezen
docker build --quiet . # Bouw een afbeelding zonder uitvoer te tonen

Afbeeldingen Taggen en Pushen

docker tag <local-image-name> <username>/<preferred-image-name>
docker push <username>/<preferred-image-name>

Afbeeldingen Verwijderen

docker rmi <image-name>        # Verwijder een specifieke afbeelding
docker image prune             # Verwijder ongebruikte afbeeldingen
docker image prune -a          # Verwijder alle ongebruikte afbeeldingen

Verwijder losse afbeeldingen

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Afbeelding ontaggen

docker rmi repository/image-name:tag

Beheer van Containers

Containers Starten

docker run -itd --name <container-name> <image-name> # Start een container in detached modus
docker run -it -p <host-port>:<docker-port> <image-name> # Start een container met poorttoewijzing
docker run -it --name <container-name> <image-name> # Start een container interactief

Containers Lijsten

docker ps                  # Lijst lopende containers
docker ps -a               # Lijst alle containers
docker ps -s               # Lijst lopende containers met CPU- en geheugengebruik

Starten, Stoppen en Herstarten van Containers

docker start <container-name>   # Start een gestopte container
docker stop <container-name>    # Stop een lopende container
docker restart <container-name> # Herstart een container

Containers Verwijderen

docker rm <container-name>      # Verwijder een gestopte container
docker rm -f <container-name>   # Verwijder krachtig een container
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Verwijder alle containers

Verwijder alle gestopte containers

docker container prune

Aanmelden bij Containers

docker attach <container-name>  # Aanmelden bij een lopende container
docker exec -it <container-name> bash # Voer een opdracht uit in een lopende container interactief

Containers Inspecteren

docker inspect <container-name> # Inspecteer een container
docker logs <container-name>    # Bekijk de logboeken van een container
docker port <container-name>    # Toon de poorttoewijzingen van een container

Beheer van Netwerken

docker network ls            # Lijst alle netwerken
docker network create <network-name> # Creëer een nieuw netwerk
docker network rm <network-name>    # Verwijder een netwerk

Beheer van Volumes

docker volume ls             # Lijst alle volumes
docker volume create <volume-name> # Creëer een nieuw volume
docker volume rm <volume-name>    # Verwijder een volume
docker run -v <host-path>:<container-path> <image-name> # Monteer een volume

Docker Compose

Basisopdrachten

docker-compose up           # Start diensten gedefinieerd in docker-compose.yml
docker-compose up -d        # Start diensten in detached modus
docker-compose down         # Stop en verwijder diensten
docker-compose ps           # Lijst lopende diensten
docker-compose logs         # Bekijk logboeken van diensten
docker-compose start        # Start diensten
docker-compose stop         # Stop diensten
docker-compose pause        # Pauzeer diensten
docker-compose unpause      # Onpauzeer diensten

Dockerfile Opdrachten

Bouw een afbeelding vanuit een Dockerfile

docker build -t <image-name> <Dockerfile-path> # Bouw een afbeelding vanuit een Dockerfile

Voorbeeld Dockerfile

FROM <base-image>
RUN <command>
COPY <source> <destination>
EXPOSE <port>
CMD ["<command>", "<argument>"]

Beveiliging en Geheimen

Docker Geheimen

docker secret create <secret-name> <file> # Creëer een geheim
docker secret ls                         # Lijst alle geheimen
docker secret rm <secret-name>          # Verwijder een geheim

Docker Beveiliging

  • Gebruik Docker geheimen om gevoelige gegevens centraal te beheren en veilig over te brengen naar containers.
  • Geheimen zijn versleuteld tijdens het transport en in rust in een Docker swarm.

Opruimen

Verwijder ongebruikte bronnen

docker system prune          # Verwijder ongebruikte gegevens (afbeeldingen, containers, netwerken, volumes)
docker image prune           # Verwijder ongebruikte afbeeldingen
docker container prune       # Verwijder ongebruikte containers
docker network prune         # Verwijder ongebruikte netwerken
docker volume prune          # Verwijder ongebruikte volumes

Verwijder ongetagde afbeeldingen

Soms na een grote goede compilatie is er een afbeelding zoals deze vanuit de docker images opdracht:

veel ongetagde afbeeldingen

om die afbeeldingen met tags te verwijderen:

docker rmi $(docker images --filter “dangling=true” -q --no-trunc)

het bovenstaande is oud en niet compatibel. De parameter dangling=true is verouderd. Gebruik

docker system prune

het zal vragen:

WAARSCHUWING! Dit zal verwijderen:
	- alle gestopte containers
	- alle volumes die niet worden gebruikt door minstens één container
	- alle netwerken die niet worden gebruikt door minstens één container
	- alle losse afbeeldingen

je kunt beslissen om Ja te zeggen op deze waarschuwing…

Deze cheat sheet behandelt de essentiële opdrachten en concepten die nodig zijn om Docker-containers, afbeeldingen, netwerken, volumes en meer te beheren. Voor een dieper inzicht, verwijzen we naar de gedetailleerde gidsen en tutorials die beschikbaar zijn online.