Docker

Docker File Reference: https://docs.docker.com/engine/reference/builder/
Docker CLI: https://docs.docker.com/engine/reference/run/
Docker Dämon CLI : https://docs.docker.com/engine/reference/commandline/dockerd/
Docker Compose: https://docs.docker.com/compose/overview/
tutorialspoint: https://www.tutorialspoint.com/docker/index.htm
docker success center: https://success.docker.com/architectures

Docker installieren

Docker Compose installieren
apt install docker-compose : Installiert veraltete(!) Version von docker compose.
docker-compose --version : Version überprüfen.
Installation der aktuellen Version mittels : https://docs.docker.com/compose/install/

Docker-Installation testen:
$ systemctl status docker : Überprüfen, ob Docker läuft.
$ sudo usermod -aG docker $(whoami) : Eigenen Benutzernamen zur Dockergruppe hinzunehmen, damit der Befehl docker ohne sudo funktioniert.
$ docker run hello-world : Ein Testimage vom Dockerhub ziehen und zum Test laufen lassen.
$ docker version : Version von Client und Server anzeigen.
$ docker info : Ausführliche Info zur Dockerinstallation
$ systemctl restart docker : Docker neu starten.

Docker Dämon
/lib/systemd/system/docker.service : systemd docker service file, der nicht modifiziert werden sollte.
$ systemctl edit docker : Konfiguration der Optionen des Docker-Dämons.
/etc/docker/daemon.json : Empfohlener File, für die Optionen des Docker-Dämons (funktioniert bei mir nicht).
docker daemon CLI : docs.docker.com
Dockerfile Dockerfile reference, Best practices for writing Dockerfiles
Netz docker network ls : Von Docker auf dem Knoten erzeugte Netze anzeigen
Image Mgmt

Push/Pull auf Docker-Hub
$ docker login : Einloggen in den Dockerhub https://hub.docker.com .
$ docker tag myimage newimage:77 : Image umbennen und taggen.
$ docker push myreg:5000/testrep/newimage:77 : Image in ein privates Repository pushen.
$ docker pull myreg:5000/testrep/newimage:77 : Image von einem privaten Repository pullen.

Anzeigen:
$ docker images -a : Alle Docker Images mit ID anzeigen.
$ docker network ls : Die von Docker auf dem Knoten erzeugten Netze anzeigen lassen.

Erzeugen:
$ docker build -t myname:20 . : Aus dem Dockerfile im aktuellen Verzeichnis wird ein Dockerimage mit dem Name-Tag myname:10 erzeugt.


Baustelle:

Löschen:

docker rmi Image Image : Mehrere Docker-Images löschen

docker rmi $(docker images -a -q): Alle Images löschen.

docker rmi $(docker images -f dangling=true -q) : Alle Images löschen, die ohne Beziehung herumhängen.

Info: https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes

Lokaler Speicher für Images:

/var/lib/docker/aufs/ : Union-Filesystem, um geschichtete Images zu speichern.

Info: https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/
Container Mgmt
Erzeugen:
docker run -ti myIMAGE: Aus dem Image myIMAGE wird ein neuer Container erzeugt und eine interaktive Shell zur Verfügung gestellt.
Anzeigen (Doku):
docker ps -a : Alle Container mit Status (-a) anzeigen.
docker stop $(docker ps -a -q): Alle Container stoppen
docker ps -a -f status=exited : Alle Container anzeigen, die im Status exited sind. (Doku)
Stoppen:
docker stop CONTAINER1 CONTAINER1 : Mehrere Container stoppen. (Analog mit start.)
Löschen:
docker rm $(docker ps -a -f status=exited -q) : Alle Container löschen, die im Status exited sind.
docker compose Compose file version 3 reference
Swarm mode basics

Reference for docker nodes, network, services, swarm:
docker swarm ... / docker node ... / docker service ... / docker network ... /

Guide: Configure and use Docker

docker swarm init : Cluster erzeugen und Knoten zum ersten Managerknoten in diesem Cluster machen. Doku

docker swarm join-token manager : Join-Token abfragen, um einen Manager Node zum Cluster hinzuzufügen. Analog mit worker.
docker node ls : Überblick über die Knoten im Cluster.

docker service create --name=check_mk --publish=8201:80 uvwxy/checkmk : Den Service check_mk erzeugen und starten.

docker network ls : Auf dem Knoten vorhandene Netze anzeigen.

Grafisches Tool : docker-swarm-visualizer
Swarm deploy

docker stack deploy --compose-file docker-compose.yml nameofstack : deploy-the-stack-to-the-swarm.

private local registry service:

docker service create --name registry --publish target=5000,port=5000 registry:2 : private local registry service

docker tag myimage localhost:5000/myimage / docker push localhost:5000/myimage / docker pull localhost:5000/myimage : how to work with.
Container ausführen

run

Nützliches:

docker exec -it conti /bin/bash : In den Container conti mit der interaktiven Shell /bin/bash einloggen.
Tool: Portainer

Webbasiertes Management von Containern auf Docker-Hosts. Portainer wird selbst als Container zur Verfügung gestellt. Remote-Management über TLS-Anbindung

Info:

http://portainer.readthedocs.io/en/stable/index.html



Backlinks: 3 Docker & Co.