![Page 1: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/1.jpg)
10. Juli 2015
Docker - ein Workshop für DevOpsExperten Forum Stuttgart
![Page 2: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/2.jpg)
Abstract
DevOps mit Docker - ein Workshop für Softwareentwickler und Systemadministratoren
Docker zieht seit einiger Zeit viel Aufmerksamkeit auf sich, hauptsächlich weil es das aktuelle sehr populäre Thema DevOps adressiert. Bei Docker handelt es sich eine offene Plattform für Software-Entwickler und Sysadmins, mit der sie Software annähernd überall bauen, ausliefern und betreiben können. In diesem Workshop werden Sie lernen wie Software-Container gebaut, ausgeliefert, konfiguriert und betrieben werden. Der Vortragende wird sie anhand von praktischen Beispielen an seinen Erfahrungen teilhaben lassen.
![Page 3: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/3.jpg)
Christian Noack Dipl.-InformatikerSoftware-Entwicklung seit 1988 Selbstständig seit 2004
Agile Methoden Projektmanagement Software-Entwicklung Gesamter Software-Lifecycle
Banken, Versicherung, Logistik, Gesundheitswesen
www.agile-methoden.de
![Page 4: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/4.jpg)
Am Ende der Software-Enwicklung:
Bauen der Software ⟹ Auslieferung
⟹ Systemintegration
⟹ Ausführung
Systemintegration ist ein häufig vernachlässigtes Thema mit unerwartet hohem Aufwand
Unsere heutige Agenda daher:
![Page 5: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/5.jpg)
Am Ende der Software-Enwicklung:
Bauen der Software ⟹ Auslieferung
⟹ Systemintegration
⟹ Ausführung
Systemintegration ist ein häufig vernachlässigtes Thema mit unerwartet hohem Aufwand
Unsere heutige Agenda daher:
BUILD, SHIP, RUN !
![Page 6: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/6.jpg)
Rental Kingein fiktives Praxisbeispiel
![Page 7: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/7.jpg)
Rental King
Herbert Hitzegrad Baumaschinenverleih
10 Mitarbeiter1 Standort
Windows-PCStandard-SW
![Page 8: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/8.jpg)
Rental King
Herbert Hitzegrad Baumaschinenverleih
10 Mitarbeiter1 Standort
Windows-PCStandard-SW
Trailer RentalStachoviak
Zick ZackMaschinenverleih
Fusionierung
200 Mitarbeiter 40 Standorte
Gründung IT-Abteilung
![Page 9: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/9.jpg)
Erste Aufgabe der IT
✤ Einführung SAP
✤ Entwicklung einer spezialisierten Software für Verleih/Vermietung
✤ Systemhaus
![Page 10: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/10.jpg)
Erste Aufgabe der IT
✤ Einführung SAP
✤ Entwicklung einer spezialisierten Software für Verleih/Vermietung
✤ Systemhaus Peek & Poke
![Page 11: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/11.jpg)
Software-Entwicklung
✤ non fuctional requirements:
✤ Java, JBoss, SAP-Anbindung, Postgresql
✤ Betrieb im Rechenzentrum „Hans Petersen“
✤ Installation, Wartung, Backup durch HaPe
✤ RHEL, SAP als Service
![Page 12: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/12.jpg)
Initialisierung
✤ Neue Funktionalität getrieben durch Fachabteilung oder Gesetzgeber
✤ Anforderungsanalyse IT/FA
✤ Priorisierung, Festlegung des Umfangs
✤ Festpreisprojekt
✤ Iterative Entwicklung mit Change-Management
![Page 13: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/13.jpg)
Implementierung
✤ Test am Ende einer Iteration auf Entwicklungsserver von Peek & Poke
✤ Debian 7, JBoss 7, Postgresql 9.4, JDK8, SAP-Testserver
✤ Nach 5 Iterationen ⟹ Release
✤ Lieferung von P&P:
✤ War-Files, Jar-Files, Konfigurationsdateien
✤ Migrationsscripts, Installationsanleitung
![Page 14: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/14.jpg)
Installation in Abnahmeumgebung
✤ Abnahme bei Rental King
✤ lokaler physischer Server im Intranet
✤ PC, 16 GB, Ubuntu 14.04 LTS
✤ Postgresql 9.3, JDK 7, JBoss 6
✤ Manuelle Installation:
✤ Kopieren, Stoppen, Starten, Konfigurationsdateien anpassen
✤ Files löschen, sichern usw. einige manuelle Anpassungen wg. Versionsinkompabilitäten
✤ Test & Abnahme durch Fachabteilung
![Page 15: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/15.jpg)
Installation in Produktionsumgebung✤ Übertragung: war, jar, Config-Files, Migrationsscripts, modif.
Installationsdateien
✤ Manuelle Installation im RZ durch Mitarbeiter von HaPe
✤ Zielumgebung:
✤ REHL 7, JBoss 6, JDK 7, Postgresql 9.2, SAP as a Service
✤ Einige Probleme bei Installation, manuelle Korrekturen
✤ Test durch IT v. Rental King ⟹ Freigabe
✤ Online Schaltung durch HaPe
![Page 16: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/16.jpg)
Weiterentwicklung
✤ Erweiterungen
✤ Neue Online-Angebote für Kunden
✤ Internes PM & Ticketing-System (Redmine)
✤ ….
✤ Teilweise entwickelt durch Peek & Poke
✤ Teilweise Open-Source
✤ Umzug in neues Rechenzentrum
![Page 17: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/17.jpg)
Probleme
✤ umgebungsspez. Konfigurationen
✤ Probleme bei Deployment d. Java-Anwendungen
✤ OutOfMemory, HeapSpace, Rechte, Systemabhängigkeiten, fehlende Bibliotheken, falsche Java-Version
✤ Eingriffe durch das RZ notwendig
✤ Rollback ≙ Neuauslieferung
✤ Unterschiedliche Installationsprozesse für verschiedene Anwendungen (Java, RoR, …)
✤ Umzug auf neuen Server bedeutet Neuinstallation
![Page 18: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/18.jpg)
„Die Systemintegration wird häufig völlig unterschätzt.“
– Jens-Uwe Pipka
![Page 19: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/19.jpg)
„Die Systemintegration wird häufig völlig unterschätzt.“
![Page 20: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/20.jpg)
„Die Systemintegration wird häufig völlig unterschätzt.“
Ursache ist die starke Trennung zwischen Software-Entwicklung und Betrieb
Thema gewinnt in letzter Zeit deutlich an Interesse
![Page 21: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/21.jpg)
„Die Systemintegration wird häufig völlig unterschätzt.“
Ursache ist die starke Trennung zwischen Software-Entwicklung und Betrieb
Thema gewinnt in letzter Zeit deutlich an Interesse
DevOps
![Page 22: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/22.jpg)
Alternative: Scripting
✤ Umgebungsspez. Scripts für autom. Installation
✤ Wo werden Scripts getestet?
✤ Scripts unterliegen kontinuierliche Anpassung
✤ Nicht trivial
✤ Nur umgebungsspezifische Reproduzierbarkeit
![Page 23: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/23.jpg)
Alternative: Container
✤ Docker (www.docker.com)
✤ RKT/Rocket (https://coreos.com/rkt/docs/latest/)
![Page 24: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/24.jpg)
Wie kam es dazu?
✤ 1995: Konrad Zuse trifft Bill Gates auf der CeBit
✤ Zuse: Rechner über Funktion aus, Software beschreibt Funktion. Software alleine wertlos
✤ Gates erkennt Wert von Software unabhängig von Hardware
✤ Gates betrachtet Trennung aber vor allem betriebswirtschaftl.
✤ Techn. besteht Abhängigkeit (Intel-Prozessoren)
![Page 25: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/25.jpg)
Entkopplung Software/Hardware
✤ In der Software-Entwicklung Trennung von Applikationscode und Hardware durch virtualisierte Ausführungsumgebung für Bytecode (Smalltalk-80, Java 1995)
✤ Bytecode ist HW-unabhängig
✤ VM ist Prozessor und OS-spezifisch
✤ Portable Software
![Page 26: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/26.jpg)
Web 2.0
✤ 2000er: Google, Facebook, Amazon (RZ, Cloud-Services, Kindle)
✤ SW übt Funktion aus, HW annähernd beliebig
✤ HW durch Virtualisierung vollständig abstrahiert
✤ Verwendung von eigenen Virtualisierungstechniken
✤ Linux Kernel LXC
![Page 27: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/27.jpg)
Entwicklung vs. Betrieb
✤ Entwicklung immer öfter virtualisiert
✤ Virtual Box, Vagrant …
✤ Betrieb i.d.R. in traditioneller Infrastruktur
✤ Standardisierten Virtualisierungsverfahren erst am Anfang
✤ Ausnahme:
✤ RZ für Privatkunden und kleinere Unternehmen (HostEurope, Strato, Hetzer)
✤ Spezialisierte RZ (Heruko)
![Page 28: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/28.jpg)
Etablierung der Container-Technologie 2013
Vollständige Entkopplung von Software und Hardware
![Page 29: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/29.jpg)
Beispiel
✤ Einführung eines Redmine-Systems bei Rental King
✤ Dazu brauchen wir:
✤ Redmine
✤ Postgresql-Datenbank
✤ Anbindung an vorhandenen SMTP-Server
![Page 30: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/30.jpg)
Non functional requirements
✤ Portierbarkeit
✤ Kapselung
✤ Reproduzierbarkeit
✤ Testbarkeit
✤ Unabhängigkeit von Ausführungsumgebung
✤ OS-Version
✤ Installierte Systembibliotheken
![Page 31: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/31.jpg)
Kapselung
✤ Redmine und Postgresql soweit kapseln, dass bereits bei Entwicklung alles enthalten ist, was später in der Produktion gebraucht wird
✤ bis auf: vorhandene Infrastrukturkomponenten:
✤ SMTP-Server
✤ Storage (NAS/SAN)
![Page 32: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/32.jpg)
Kapselung
BUILD, SHIP, RUN !
![Page 33: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/33.jpg)
Minimale Vorraussetzungen an Ausführungsumgebung✤ Linux-Kernel > 3.x
✤ Docker-Installation > 1.5
✤ Minimales OS (CoreOs, TinyOs) oder vollständiges OS (Ubuntu, Debian, RedHat …)
✤ Nicht benötigt:
✤ spezielle Bibliotheken/Systemblibliotheken
✤ Java-, PHP-, Ruby-Installationen
![Page 34: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/34.jpg)
Gewünschte Entkopplung der Container✤ Container enthält alles was für Ausführung der
Anwendung benötigt wird
✤ Container können verbunden werden (Link)
✤ Unser Beispiel: 2 Container
![Page 35: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/35.jpg)
Gewünschte Entkopplung der Container✤ Container enthält alles was für Ausführung der
Anwendung benötigt wird
✤ Container können verbunden werden (Link)
✤ Unser Beispiel: 2 Container
POSTGRESQL REDMINE
![Page 36: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/36.jpg)
Gewünschte Entkopplung der Container
POSTGRESQL REDMINE
Zuerst
![Page 37: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/37.jpg)
DockerHub
Produktionsumg.
Dockerfile
Lokale Um
gebung
Image
Basis- Image
EngineContainer
Image
EngineContainer
![Page 38: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/38.jpg)
Vorraussetzungen f. Entwicklung
✤ Linux-System 64bit (physikl. oder virtuell)
✤ Kernel 3.x
✤ Docker-Installation> 1.6
✤ Windows: boot2docker oder vagrant
✤ Mac: boot2docker, kitematic oder vagrant
✤ Empfehlung Debian-basiertes Linux-System
![Page 39: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/39.jpg)
Mac OS X
Git
Safari
Atom
Virtual Box Server (Vagrant)
Postgres
Redmine
Registry
Volume
FS
FSConsoleDocker Commands
virtual box internal network
Virtual Box Target (Vagrant)
Volume
Redmine
Postgres
FSConsoleDocker Commands
8082
8081
5555
5555
8081
8081
5432
80
5000
![Page 40: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/40.jpg)
Mac OS X
Git
Safari
Atom
Virtual Box Server (Vagrant)
Postgres
Redmine
Registry
Volume
FS
FSConsoleDocker Commands
virtual box internal network
Virtual Box Target (Vagrant)
Volume
Redmine
Postgres
FSConsoleDocker Commands
8082
8081
5555
5555
8081
8081
5432
80
5000
![Page 41: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/41.jpg)
Mac OS X
Git
Safari
Atom
Virtual Box Server (Vagrant)
Postgres
Redmine
Registry
Volume
FS
FSConsoleDocker Commands
virtual box internal network
Virtual Box Target (Vagrant)
Volume
Redmine
Postgres
FSConsoleDocker Commands
8082
8081
5555
5555
8081
8081
5432
80
5000
![Page 42: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/42.jpg)
V1: Funktionsloses Image
✤ Dockerfile
✤ docker build
✤ Versionsnummer
✤ Layer
✤ docker run mit /bin/bash
✤ FROM, MAINTAINER, ENV
sudo docker build -t agilemethoden/postgres:v1 .
![Page 43: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/43.jpg)
V2: Postgres installieren
✤ Layer
✤ Ubuntu apt-get im Container
✤ CMD
![Page 44: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/44.jpg)
V3: Postgres-Konfiguration
✤ Start von Postgres
✤ ADD, EXPOSE, ENTRYPOINT
✤ Start mit -P oder -p 5555:5432
![Page 45: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/45.jpg)
V4: Volumes
✤ Datenverlust bei Neustart des Containers, weil Daten im Container
✤ Container wächst
✤ Ziel:
✤ Daten im Container sind volatil
✤ Persistente Daten außerhalb des containers
✤ Initialisierung immer automatisch
✤ Start mit -d als Daemon
✤ Definition des VOLUME im Dockerfile
✤ start/stop ⇒ Daten bleiben erhalten
![Page 46: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/46.jpg)
V5: Volumes
✤ Festgelegte Volumes im Host Filesytem
✤ Starten mit -v
✤ Entfernen von Volume aus Dockerfile
✤ Einführung eines Startskripts
✤ Rechte auf Ordner setzen
✤ Daten persistent im Filesystem
![Page 47: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/47.jpg)
V6: Volume Container
✤ Volume Container statt direct mounting auf Host FS
✤ Host-FS an Volume Container gebunden
✤ Postgres-Container verwendet Volume-Container
✤ Volume-Container wird nur erzeugt, muss nicht laufen
sudo docker create -v $PGDATA:/var/lib/postgresql/data … \ --name docker-volume ubuntu:trusty /bin/true
docker run … volumes-from docker-volume
![Page 48: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/48.jpg)
Redmine
Registry
8081
8081
80
5000
Mac OS X
Git
Safari
Atom
Virtual Box Server (Vagrant)
Postgres Volume
FS
FSConsoleDocker Commands
virtual box internal network
Virtual Box Target (Vagrant)
Volume
Redmine
Postgres
FSConsoleDocker Commands
8082
8081
5555
5555
5432
![Page 49: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/49.jpg)
Redmine
Registry
8081
8081
80
5000
Mac OS X
Git
Safari
Atom
Virtual Box Server (Vagrant)
Postgres Volume
FS
FSConsoleDocker Commands
virtual box internal network
Virtual Box Target (Vagrant)
Volume
Redmine
Postgres
FSConsoleDocker Commands
8082
8081
5555
5555
5432
![Page 50: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/50.jpg)
V7: Parameter
✤ Parameter f. Postgres-Container beim Run mitgeben
✤ DB-Password über Kommandozeile abfragen
docker run … -e DB_NAME_VAR='redmine' …
![Page 51: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/51.jpg)
V8: Besseres Init-System
✤ Bisher Ubuntu Basis-Image:
✤ Start der Anwendung mit CMD oder ENTRYPOINT
✤ Problem: Ubuntu-Init-System (Upstart) läuft nicht
✤ Kind-Prozesse des CMD werden nicht abgeräumt
✤ Zombie-Prozesse im Container
✤ Probleme beim start/stop
✤ docker stop ⇒ SIGTERM nur an obersten Prozess
![Page 52: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/52.jpg)
V8: Phusion Base-Image
✤ bislang kein syslog und kein cron
✤ Umstellung von Ubuntu auf Phusion
✤ Sauberes Init-System mit SIGTERM-Behandlung
✤ Anpassung Dockerfile
✤ Neues Run-Script
FROM phusion/baseimage:0.9.16
![Page 53: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/53.jpg)
Granularität
✤ Microservices vs. Anwendungen
✤ Was ist Infrastruktur?
✤ Was gehört in einen Container?
![Page 54: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/54.jpg)
V10: Redmine-Container
✤ Erstellen des vorbereiteten Redmine-Images
✤ Einbinden des Volume-Containers
✤ Linking an Postgres-Container
![Page 55: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/55.jpg)
Mac OS X
Git
Safari
Atom
Virtual Box Server (Vagrant)
Postgres
Redmine
Registry
Volume
FS
FSConsoleDocker Commands
virtual box internal network
Virtual Box Target (Vagrant)
Volume
Redmine
Postgres
FSConsoleDocker Commands
8082
8081
5555
5555
8081
8081
5432
80
5000
![Page 56: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/56.jpg)
Mac OS X
Git
Safari
Atom
Virtual Box Server (Vagrant)
Postgres
Redmine
Registry
Volume
FS
FSConsoleDocker Commands
virtual box internal network
Virtual Box Target (Vagrant)
Volume
Redmine
Postgres
FSConsoleDocker Commands
8082
8081
5555
5555
8081
8081
5432
80
5000
![Page 57: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/57.jpg)
Transfer Image in Target Env
✤ Zielumgebung aufbauen: Linux 64 + Docker
✤ Manuelles Kopieren der Images
✤ Anlegen der Startskripts
✤ create volume
✤ start postgres
✤ start redmine
![Page 58: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/58.jpg)
Eigene Registry verwenden
✤ Statt DockerHub
✤ Registry aus Basis-Image erstellen und starten
✤ Images pushen
✤ Images auf anderer Maschine (Target) pullen
sudo docker run -d -p 5000:5000 --restart=always \ --name registry registry:2
![Page 59: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/59.jpg)
sudo docker tag agilemethoden/postgres:v8 \ localhost:5000/agilemethoden/postgres:v8sudo docker images
Vorhandenes Image taggen, damit es später in neue Registry übertragen werden kann:
In neues Registry pushen
sudo docker push localhost:5000/agilemethoden/postgres:v8
sudo docker pull 192.168.50.4:5000/agilemethoden/postgres:v8
Auf anderer Maschine aus dem Registry pullen
![Page 60: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/60.jpg)
Mac OS X
Git
Safari
Atom
Virtual Box Server (Vagrant)
Postgres
Redmine
Registry
Volume
FS
FSConsoleDocker Commands
virtual box internal network
Virtual Box Target (Vagrant)
Volume
Redmine
Postgres
FSConsoleDocker Commands
8082
8081
5555
5555
8081
8081
5432
80
5000
![Page 61: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/61.jpg)
Ausblick
✤ Weiterentwicklung Docker
✤ Konkurrenz Rocket
✤ Management-Tools:
✤ Consul
✤ Kubernetes
✤ Docker-Machine
✤ Fabric8
![Page 62: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/62.jpg)
Sinnvolle Kommandos
sudo docker inspect -f "{{.Volumes}}" containername
sudo docker run -t -i -p 5555:5432 -d —name containername agilemethoden/postgres:v4
sudo docker ps
# Connect an laufenden Containersudo docker exec -t -i redminepg /bin/bash
# Delete all containers sudo docker rm $(docker ps -a -q)
# Delete all images sudo docker rmi $(docker images -q)
# Delete all untagged images sudo docker rmi $(docker images | grep '^<none>' | awk '{print $3}')
![Page 63: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/63.jpg)
„noch Fragen?“
![Page 64: Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH](https://reader034.vdokument.com/reader034/viewer/2022042820/55cfb7e2bb61eb32148b475d/html5/thumbnails/64.jpg)
Danke
Folien zum Vortrag auf
http://de.slideshare.net/agilemethoden/docker-workshopefs2015
Infos zum Autor auf
http://www.agile-methoden.de
Bei Fragen gerne auch:
© 2015, Christian Noack, Agile Methoden GmbH