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