Docker

Container Technology Wiki : https://www.aquasec.com/wiki

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/
Docker Compose File : https://docs.docker.com/v17.09/compose/compose-file/
tutorialspoint : https://www.tutorialspoint.com/docker/index.htm
docker success center : https://success.docker.com/architectures
Docker Machine Overview : https://docs.docker.com/machine/overview/
Docker Tutorials and Labs : https://github.com/docker/labs
Docker Swarm Rocks : https://dockerswarm.rocks/

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).

Push/Pull auf Docker-Hub
$ docker login : Einloggen in den Dockerhub (Abfrage username/passwd). https://docs.docker.com/docker-cloud/builds/push-images/ .
$ 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.

Docker Container
$ docker container COMMAD : https://docs.docker.com/edge/engine/reference/commandline/container/

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

Aufräumen:
$ docker system prune : Löscht Überflüssiges. Statt system geht auch image, container, volume, network.

Images :
$ docker build -t myname:20 . : Aus dem Dockerfile im aktuellen Verzeichnis wird ein Dockerimage mit dem Name-Tag myname:10 erzeugt.
$ docker rmi Image Image : Mehrere Docker-Images löschen

Passwort-Container erzeugen:
$ echo <pw> | docker secret create my_pw -

Docker run:
Parameter: --volume,
$ docker run -ti myIMAGE : Aus dem Image myIMAGE wird ein neuer Container erzeugt und eine interaktive Shell zur Verfügung gestellt.

Bash in Container ausführen
$ docker exec -it conti /bin/bash : In den Container conti mit der interaktiven Shell /bin/bash einloggen.

Docker Compose ausführen (https://docs.docker.com/compose/reference/overview/)
$ docker-compose -f file -d up : Container erzeugen und starten. -d detached.

Docker-Compose Schlüsselworte
container_name: MyName : Container-Name zuweisen.

Docker Swarm
$ docker swarm init : Cluster erzeugen und Knoten zum ersten Managerknoten in diesem Cluster machen.
$ docker swarm init --advertise-addr enp0s8 <ip> : Cluster erzeugen und den hierfür verwendeten Port und Adresse angeben.
$ 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 node ls -f "role=manager" : Nur die Managrknoten listen.
$ docker node demote <node> : Knoten vom Manager zum Worker herabstufen
$ docker node promote <node> : Knoten zum Manager heraufstufen
$ docker node rm <node> : Knoten (nur Worker) aus dem Swarm entfernen

$ echo <pw> | docker secret create my_pw - : Secret ereugen
$ docker stack deploy -c do-co.yml stackname : Docker Stack deployen.

Docker services
$ docker stack COMMAND : https://docs.docker.com/engine/reference/commandline/stack/
$ docker service COMMAND : https://docs.docker.com/engine/reference/commandline/service/



Backlinks:
3 Networked Infrastruktur