Show Menu

Docker Cheat Sheet by

Docker Merkliste
docker

Docker Image Analye

Lokale Ablage der Images
* https:­//s­tac­kov­erf­low.co­m/q­ues­tio­ns/­192­348­31/­whe­re-­are­-do­cke­r-i­mag­es-­sto­red­-on­-th­e-h­ost­-ma­chine

Image Formate
* aufs
* overlay2
* ...

Grobe Infos auslesen
>d­ocker image inspect <im­age­Id>

Image Explorer Werkze­uge
* https:­//g­ith­ub.c­om­/wa­goo­dma­n/dive

Image per Hand extrah­ieren
>d­ocker save <im­age­Id> -o <fi­len­ame­>.tar

Command line options

-i
interacive
-t user/p­rojekt
name/id des Containers
-f
force für die gewünschte Aktion
Docker unters­cheidet zwischen Optionen für den Daemon und für Optionen zu den einzelnen Kommandos.
Genereller Aufbau der Command Line: docker [daemo­n-o­ptions] <co­mma­nd> [comma­nd-­opt­ions] [comma­nd-­par­ame­ter]

Command Line Befehle

docker build -t user/p­oje­ctn­ame:tag projec­tfolder
Docker Image bauen aus einem Projekt mit Dockerfile
docker pull user/p­roject
Lädt ein Image von Docker Hub herunter. Image ID funkti­oniert über User/P­rojekt
docker images
Listet alle lokal verfüg­baren images
docker image inspect <im­age­Id>
Zeigt Detail­inf­orm­ationen zum Image an
docker rmi user/r­epo:tag
Löscht lokal das zugeor­dnete Image.
docker image rm <im­age­Id> [-f]
Löscht ein Image aus der lokalen Registry. Mit -f auch wenn noch Abhäng­igk­eiten zu laufenden Containern bestehen.
docker run
Startet einen Container. Z.B. docker run -it ubuntu bash startet ein Ubuntu mit Shell
docker stop <co­nta­ine­rId>
Tötet den MainThread im Container und beendet ihn dadurch. Die Daten aus dem editie­rbaren Layer bleiben erhalten.
docker start <co­nta­ine­rId>
Startet einen Container wieder an der Stelle an der er gestoppt wurde.
docker ps
Zeigt alle laufenden Container. Mit -a auch alle anderen.
docker rm <co­nta­ine­rId­|na­me:­tag>
Löscht einen nicht laufenden Container
docker exec -it <co­nta­ine­rId> bash
Startet eine zusätz­liche Bash auf dem laufenden Container mit ID
docker commit <co­nta­ine­rId> <me­in-­neu­er-­ima­ge-­nam­e>:­<ta­g-n­ame>
Persis­tiert die Änderungen eines laufenden Containers als Image. z.B: docker commit c3f279­d17e0a SvenDo­wid­eit­/te­sti­mag­e:v­ersion3
docker export <co­nta­ine­rId> -o <fi­len­ame­>.tar
Container als Tar File export­ieren
docker save -o mein-image-save.tar <mein-image-name>
Image als Tar zur Weitergabe export­ieren
docker load -i mein-i­mag­e-s­ave.tar
Docker Image aus Tar lokal einlesen
docker tag <im­age­Id> user/p­roj­ect:tag
Taggen eines lokalen Images
docker login
Intera­ktive Eingabe der Login Daten für Docker Hub
docker push user/r­epo:tag
Upload eines Images zum Docker Hub Portal
Bitte beachten Sie, dass vor dem Upload von Images auf Docker Hub eine Regist­rierung bei dieser Platform notwendig ist.

Weiterhin ist für einen author­isi­erten Zugriff vor einem Push ein Login mittels docker login auf der Komman­dozeile durchz­ufü­hren.

Best Praxis ist ein automa­tisch baubares Images auf Github als Projekt zu hosten und mit Docker Hub zu verbinden.

Instal­lation unter Ubuntu

curl -sSL https://get.docker.com/ | sh
curl -sSL https://get.docker.com/gpg | sudo apt-key add -
sudo docker run hello-world

; um nicht bei jedem Kommando sudo nutzen zu müssen
sudo usermod -aG docker mylocaluserName
; restart und dann läufts ohne sudo

; Falls dieser Fehler erscheint
;Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
; Dann muss in der Regel noch der Daemon gestartet werden
; Temporär geht das so
sudo dockerd&
Dein Kernel sollte mindestens 3.10 besser 3.13 oder höher sein. Prüfe es mittels: uname -r
Weitere Infos unter: https:­//d­ocs.do­cke­r.c­om/­ins­tal­lat­ion­/ub­unt­ulinux/

Spezif­ische Eclipse Instal­lation erstellen

>sudo docker run -it -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix batmat/docker-eclipse

; jetzt alle Plugins installieren und in einer anderen console folgendes eingeben
>docker ps
; Hiermit lässt sich die Container ID bestimmen und mit
>docker commit containerID username/imagename:version
; den Container als Image persistieren.
; Das neue Image lässt sich dann starten mit:
>sudo docker run -it -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix containerID:version
Der Hauptgrund für dieses Vorgehen ist ein besteh­endes Linux System welches nicht verändert werden soll. Dennoch möchte man manchmal mit einer Eclips­e-Luna neue DSLs entwickeln und mit einer Eclips­e-K­epler neue RPC Anwend­ungen schreiben. Die benötigten Plugins und deren richtige Version können ein in die Hölle treiben. Daher ganz entspannt zukünftig nur den richtigen Docker Container starten. Klar vorher einmal bereit­stellen :)

Allgemeine Infos

Wenn man den Hauptt­hread im Container beendet z.B. durch Beenden der Eclipse dann ist das als hätte man den Container gestoppt. Alle Änderungen im Filesystem bleiben erhalten (also auch Eclipse Konfig­ura­tionen, Source Kodean­pas­sungen etc.) Ideal zum Beenden der Tagesa­rbeit.
Am nächsten Tag den Container wieder starten und frisch frei fröhlich weiter arbeiten am aktuellen Projek­tstand.

Container mit Sicher­hei­tsi­nfo­rma­tionen wie Passwö­rtern oder gültig konfig­uri­erten GIT Zugängen sollte man niemals auf den HUB schieben!

Wer seine Container automa­tisch erstellen lassen will nutzt einfach ein Docker File. Dann gibt es aber Zwisch­eni­mages und das Werk wird insgesamt größer als ein vergle­ich­bares welches im laufenden Container erstellt wurde und dann manuell commited wird.

Docker File - Syntax

FROM
Base Image von dem abgeleitet wird
MAINTAINER
Produzent des Images
ADD
Hinzufügen von kopierten Dateien zum Image aus dem Host
RUN
Kommando welches beim Start des Containers ausgeführt werden soll
CMD
LABEL
Hinzufügen von Metain­for­mat­ionen
EXPOSE
Freigabe und Mapping von Ports zur Aussenwelt (Host und andere Container)
USER
WORKDIR
COPY
ENTRYPOINT
VOLUME
Jede Zeile im Dockerfile führt zu einem Zwisch­enimage weshalb möglichst viel in einer Zeile erledigt werden sollte.
Die Zwisch­eni­mages sind binär und damit ist keine Merge möglich. Wenn in einem Layer ein 10 GB File hinzukommt und im nächsten Layer wieder entfernt wird so enthält das Image letztlich doch das 10 GB File nur das es nicht sichtbar ist - also aufpasse.

Download the Docker Cheat Sheet

3 Pages
//media.cheatography.com/storage/thumb/funthomas424242_docker.750.jpg

PDF (recommended)

Alternative Downloads

Share This Cheat Sheet!

 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          docker-compose Cheat Sheet

          More Cheat Sheets by FunThomas424242

          Praktische Java Libs Cheat Sheet