Nachdem Mathias im ersten Teil über die Grundlagen von docker berichtet hat, kommen wir nun zum praktischen Teil.
Hier zeige ich, wie man als Entwickler mit docker arbeiten kann und wie unsere ganz einfache Betriebsumgebung aussieht.
Inhalt:
- Warum docker auch aus Entwicklersicht toll ist: Nachvollziehbarkeit
- Unser erstes Dockerfile, bauen eines Containers
FROM httpd:latest - docker build -t homepage .
- Beim ersten Mal: herunterladen des Basiscontainers
wo kommt das image her?
https://hub.docker.com/explore/ - Hinzufügen einer Datei
cat index.html
ADD index.html /usr/local/apache2/htdocs/index.html - docker build -t homepage .
- Ausführen des Containers
- docker run -ti -p 80:80 homepage
Browser öffnen: http://localhost - Anzeigen laufender Container
- docker ps
Container ID und Name erklären
Anzeigen der Logausgabe (stdout!) zu einem Container - docker logs -f –tail=100 homepage
- Anzeigen der Details zu einem Container
- docker inspect homepage
- Ausführen eines Befehls im docker container
- docker exec -ti homepage bash
Welche Prozesse laufen jetzt?
ps faxu
ps faxu | grep -A 10 docker - Stoppen des Containers: kill vs stop
- docker stop homepage. uups
docker stop <name>
docker ps -a
Nochmal starten des Containers, diesmal mit –name - docker run –name homepage -d -p 80:80 homepage
name conflict zeigen - Löschen des Containers
docker rm homepage
name conflict zeigen - Nutzen einer Datenbank
docker run –name testdb -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=user -d postgres
docker run –name homepage -d -p 80:80 –link testdb:db homepage - Zeige Environment Variablen im homepage container
docker exec -ti homepage bash
env
cat /etc/hosts
vgl. mit: docker inspect testdb - Datenbank-Connection immer per Environment-Variablen Konfigurieren!
Beispiel: cat example.application.conf - Nutzen von Volumes.
mkdir mount
docker run -v `pwd`/mount:/data –name homepage -d homepage
touch mount/hallo.txt
docker exec -ti homepage bash
touch /data/hallo.txt
ls -la /data - Nginx Reverse Proxy für https mit self-signed Zertifikaten
docker run –name nginx -d -p 80:80 -p 443:443 docker.flavia-it.de/nginxlocal
docker run -e VIRTUAL_HOST=localhost -e PUBLIC=true –name homepage -d homepage - Wie funktioniert unsere Betriebsumgebung
ssh inhouse, docker ps
Namenskonventionen erklären, run script zeigen
Danke für das Video! Schön auch mal eine Docker-Einführung auf Deutsch zu sehen (y).
Grüße aus Göttingen 🙂