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&
; Bei diesem Fehler
Error starting daemon: error initializing graphdriver: driver not supported
; half bei mir die Docker Installation zu aktualisieren und
; das Verzeichnis der aufs images zu löschen: sudo rm -rf /var/lib/docker/aufs
; (anschließend neustart)
|
FROM
|
Base Image von dem abgeleitet wird
|
|
MAINTAINER
|
Produzent des Images
|
|
LABEL
|
Hinzufügen von Metainformationen
|
|
ARG
|
Definiert Build Parametervariablen deren Werte bereits ins Image geschrieben werden
|
|
ENV
|
Definiert Umgebungsvariablen welche beim Containerstart mit -e überschrieben werden - im Image werden nur Platzhalter angelegt
|
|
ADD
|
Hinzufügen von Dateien zum Image aus dem Host
|
|
COPY
|
Kopiert Dateien vom Host in das Image
|
|
RUN
|
Kommando welches beim Build ausgeführt wird
|
|
EXPOSE
|
Freigabe und Mapping von Ports zur Aussenwelt (Host und andere Container)
|
|
VOLUME
|
Definiert Volumen welche mit der Aussenwelt verknüpft werden können (Mountpoint)
|
|
WORKDIR
|
Festlegen des Arbeitsverzeichnisses
|
|
USER
|
Accountwechsel beim Build des Images z.b. von root auf jenkins
|
|
ENTRYPOINT
|
Kommando welches beim Containerstart ausgeführt wird (ergänzt den Entrypoint)
|
|
CMD
|
Kommando welches beim Containerstart ausgeführt wird (ergänzt den Entrypoint z.B. um Parameter)
|
|
docker build -t user/pojectname:tag projectfolder
|
Docker Image bauen aus einem Projekt mit Dockerfile
|
|
docker pull user/project
|
Lädt ein Image von Docker Hub herunter. Image ID funktioniert über User/Projekt
|
|
docker images
|
Listet alle lokal verfügbaren images
|
|
docker image inspect <imageId>
|
Zeigt Detailinformationen zum Image an
|
|
docker rmi user/repo:tag
|
Löscht lokal das zugeordnete Image.
|
|
docker image rm <imageId> [-f]
|
Löscht ein Image aus der lokalen Registry. Mit -f auch wenn noch Abhängigkeiten zu laufenden Containern bestehen.
|
|
docker run
|
Startet einen Container. Z.B. docker run -it ubuntu bash startet ein Ubuntu mit Shell
|
|
docker stop <containerId>
|
Tötet den MainThread im Container und beendet ihn dadurch. Die Daten aus dem editierbaren Layer bleiben erhalten.
|
|
docker start <containerId>
|
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 <containerId|name:tag>
|
Löscht einen nicht laufenden Container
|
|
docker exec -it <containerId> bash
|
Startet eine zusätzliche Bash auf dem laufenden Container mit ID
|
|
docker commit <containerId> <mein-neuer-image-name>:<tag-name>
|
Persistiert die Änderungen eines laufenden Containers als Image. z.B: docker commit c3f279d17e0a SvenDowideit/testimage:version3
|
|
docker export <containerId> -o <filename>.tar
|
Container als Tar File exportieren
|
|
docker save -o mein-image-save.tar <mein-image-name>
|
Image als Tar zur Weitergabe exportieren
|
|
docker load -i mein-image-save.tar
|
Docker Image aus Tar lokal einlesen
|
|
docker tag <imageId> user/project:tag
|
Taggen eines lokalen Images
|
|
docker login
|
Interaktive Eingabe der Login Daten für Docker Hub
|
|
docker push user/repo:tag
|
Upload eines Images zum Docker Hub Portal
|
|
docker system prune
|
Räum lokal mal richtig auf - obsolete Dinge fliegen weg
|
docker run -ti -v /var/run/docker.sock:/var/run/docker.sock dockerdocker run --privileged -d docker:dinddocker run -p 8080:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /var/lib/jenkins_home:/var/jenkins_home -e "DOCKER_GID_ON_HOST=docker_group_id" oose/dockerjenkins> latest: Pulling from library/openjdk> no matching manifest for unknown in the manifest list entries> docker info -f '{{.OSType}}/{{.Architecture}}'> mkdir /docker-testconfig> touch /docker-testconfig/config.json> docker --config ~/docker-testconfig manifest inspect -v library/openjdk:latest | jq .[].Platform--link eine Verbindung schaffen. Der Weg wird explizit als veraltet und nicht empfohlen beschrieben. # ein Netzwerk my-net erstellendocker network rm my-net# den Container my-nginx dem Netzwerk my-net zuordnen'
docker network connect my-net my-nginx
# den Container my-nginx aus dem Netzwerk my-net entfernen
docker network disconnect my-net my-nginx
Zusätzlich lassen sich über publish Portmappings herstellen:
--publish 8080:80` mappt Port 80 im Container auf 8080 im Host.unix:///var/run/docker.sock für Anfragen von docker cli bereit. sudo netstat -lnpx | grep docker.socksystemctl status docker.serviceexport DOCKER_HOST=tcp://X.X.X.X:2376# /etc/systemd/system/docker.service.d/override.conf anlegen mit inhalt[Service]ExecStart=ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker.service
# Docker Deamon bei Systemstart automatisch starten lassen
$ sudo systemctl enable docker`|
-i
|
interacive Mode = -a STDIN
|
|
--sig-proxy=true
|
Alle Signale werden an den Containerthread weitergeleitet (nur ohne -t möglich)
|
|
-t
|
Stellt im Container eine Pseudo TTY bereit
|
|
-a stderr -a stdin -a stdout
|
-a verbindet stellt Streams des Hosts im Container zur Verfügung. Gülige Werte: STDIN, STDOUT, STDERR
|
|
-D
|
Schaltet den Debug Mode aktiv
|
FROM golang:1.7.3 as builderCOPY --from=builder ...>docker image inspect <imageId>>docker save <imageId> -o <filename>.tar>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
No comments yet.
Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.