Docker-Compose Shortcuts

Löschen

docker-compose rm

Auflisten

docker-compose ps

Starten

docker-compose up

Starten als Dienst und neu bauen

docker-compose up -d --build

Beenden

docker-compose down

In Container springen; der Servicename ist der Name der Containerdefinition im docker-compose.yaml File

docker-compose exec Servicename bash 

.env
Variablen können in ein .env File parallel zur docker-compose.yml angelegt werden
Der Inhalt muss wie folgt aufgebaut werden

VAR_NAME=value
VAR_NAME_2=value2

Innerhalb der docker-compose.yml kann wie untenstehend darauf zugegriffen werden.

version: '3'
services:
  webtools:
    user: ${VAR_NAME}

Um innerhalb des Dockerfiles auf die Variable zuzugreifen, muss diese in den Args Block der Docker-compose.yml

version: '3'
services:
  webtools:
    environment:
      user: ${VAR_NAME}

Dann kann die Variable im Dockerfile verwendet werden

ARG VAR_NAME
RUN echo $VAR_NAME

Docker Shortcuts

Docker Image aus dem Reository laden

docker pull debian

Docker Image starten

// -d läuft im Hintergrund
docker run -d dockerImageName

//durch "-i" (interactive) und "-t" (tty) können wir die Console des Docker Images steuern
docker run -i -t dockerImageName /bin/bash

Ports mittels docker run

-p 8000:8888         Port LocalSystem:DockerContainer
-p port weiterleiten
-P alle ports für zb Kommunikation zw Containern

Daten des Hostsystems einbinden

-v /mein/ordner/im/host:/ordner/im/docker

Arbeiten mit Containern

Mit jeden docker run wird aus einem Image ein Container erstellt. Sollte dieser an der Konsole nachbearbeitet worden sein und ich beende diesen, kann ich den ihm mittels docker run nicht wieder starten, denn dann erstellt docker wieder einen neuen Container aus dessen Image.
Den veränderten Container kann ich mittels

docker container restart ContainerID

starten. Eine Auflistung aller Container erhalte ich mittels

docker ps -a

Wenn ich an die Console meines laufenden Containers möchte, kann ich diese über

docker exec -it ContainerID /bin/bash

erreichen.

Natürlich kann ich aus meinen modifizierten Container auch ein neues Image generieren. Dazu muss ich einfach meine Änderungen am Container in ein Image committen

docker commit -m "mein Kommentar" containerID neuerDockerImageName

Laufende Docker Instanzen anzeigen

docker ps

Verfügbare Docker Images anzeigen

docker images

Laufende Docker Instanz beenden

docker stop ContainerID

Alle Docker Instanzen beenden

docker stop $(docker ps -a -q)

Alle Container löschen

docker rm $(docker ps -a -q)

Alle Images löschen

docker rmi $(docker images -q)

Unbenutzte Docker Daten löschen

docker system prune

Apache Weiterleitung auf Docker Container

Im Beispiel läuft über meine-domain.de/d-nginx ein Nginx Server

-- module aktivieren
a2enmod proxy
a2enmod proxy_http


...

    Order allow,deny
    Allow from all
    Require all granted
  

 ProxyPass /d-nginx http://localhost:81/
 ProxyPassReverse /d-nginx http://localhost:81/
...