SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Docker – Automatisches Deployment 
für Linux-Instanzen 
CommitterConf Essen 2014 28. Oktober 2014 
Christian Rost 
Linux Consultant 
B1 Systems GmbH 
rost@b1-systems.de 
B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development
Vorstellung B1 Systems 
gegründet 2004 
primär Linux/Open Source-Themen 
national & international tätig 
über 60 Mitarbeiter 
unabhängig von Soft- und Hardware-Herstellern 
Leistungsangebot: 
Beratung & Consulting 
Support 
Entwicklung 
Training 
Betrieb 
Lösungen 
dezentrale Strukturen 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 2 / 37
Schwerpunkte 
Virtualisierung (XEN, KVM & RHEV) 
Systemmanagement (Spacewalk, Red Hat Satellite, SUSE 
Manager) 
Konfigurationsmanagement (Puppet & Chef) 
Monitoring (Nagios & Icinga) 
IaaS Cloud (OpenStack & SUSE Cloud & RDO) 
Hochverfügbarkeit (Pacemaker) 
Shared Storage (GPFS, OCFS2, DRBD & CEPH) 
Dateiaustausch (ownCloud) 
Paketierung (Open Build Service) 
Administratoren oder Entwickler zur Unterstützung des Teams 
vor Ort 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 3 / 37
Partner 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 4 / 37
Docker – 
Build, Ship and Run Applications 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 5 / 37
Kurze Frage vorweg: 
Wer kennt Docker? 
Wieviele haben Docker ausprobiert? 
Setzt jemand Docker produktiv ein? 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 6 / 37
Was ist Docker? 
Open Source Engine zum Standardisieren von Linux Containern 
(libcontainer) 
„build, ship and run (distributed) applications“ 
offene Plattform für Entwickler und Systemadministratoren 
einfaches Erstellen und Teilen von Container Images 
Docker ist kein virtueller Server ! 
) wenig Overhead 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 7 / 37
Eigenschaften 
Docker ermöglicht ein automatisches Deployment einer 
standardisierten Prozessumgebung für Linux-Anwendungen. 
Alle Linux-Anwendungen laufen in Docker. 
(„If it will run on Linux it will run in Docker.“) 
Docker läuft auf allen gängigen Linux-Distributionen. 
Alle benötigten Funktionen befinden sich innerhalb des 
Containers: 
Bibliotheken 
Abhängigkeiten 
Binärdateien 
. . . 
Container sind auf die Architektur der Host-Plattform 
beschränkt. 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 8 / 37
Warum Docker? 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 9 / 37
Darum Docker! 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 10 / 37
Einsatzbereiche 
einfaches Deployment auch verteilter Anwendungen: 
Evaluationssysteme 
POC-Systeme 
schnelles Bereitstellen reproduzierbarer (Laufzeit-)Umgebungen: 
für Entwickler 
in Test-/QA-/Live-Umgebungen 
Konfigurationstests 
Kapselung kritischer Dienste in eigenen Containern 
) erhöhte Ausfallsicherheit 
. . . 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 11 / 37
VMs vs. Container 
VMs komplette Maschine einschl. Kernel wird mit Hilfe eines 
Hypervisors virtualisiert. 
Container nur Prozesse werden virtualisiert, das OS und 
Binaries/Libraries gemeinsam genutzt. 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 12 / 37
Technologien hinter Docker 1/2 
chroot on steroids 
Go Programming Language 
Linux Kernel Feature 
Namespaces 
Control groups (cgroups) 
SELinux 
capabilities 
netlink 
netfilter 
. . . 
Union file system/AuFS 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 13 / 37
Technologien hinter Docker 2/2 
Containerformat 
libcontainer 
LXC 
. . . 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 14 / 37
Docker – 
das Ökosystem 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 15 / 37
Docker Engine 
Die Docker Engine besteht aus zwei Teilen: 
Server Daemon für den Serverprozess zur Verwaltung der 
Container. 
Client Client zur Fernsteuerung des Daemons. 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 16 / 37
Inside Docker 
Docker Images 
read only Template 
Basis für Container 
Docker Registries 
halten Images 
privat und öffentlich 
Docker Hub 
Docker Container 
wird auf Basis eines Images und Dockerfiles erzeugt 
hält Änderungen vor – read/write Layer 
kann zu einem neuen Image „committed“ werden 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 17 / 37
Docker – Client-Befehle (Auszug) 
attach in laufenden Container hängen 
build Container aus Docker-File bauen 
commit neues Images aus den Änderungen eines bestehenden 
Containers erzeugen 
images Images auflisten 
kill Container beenden 
login am Docker Registry Server anmelden 
ps Container auflisten 
rm Container löschen 
run Kommando in einem neuen Container ausführen 
start beendeten Container starten 
stop gestarteten Container stoppen 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 18 / 37
Docker – Container (Beispiele) 
Download des „offiziellen“ openSUSE-Containers: 
$ docker pull opensuse:13.1 
Programm innerhalb des Containers ausführen (allgemein): 
$ docker run opensuse:13.1 <command> <command params> 
Programm innerhalb des Containers ausführen (Beispiel: Bash): 
$ docker run -t -i opensuse:13.1 /bin/bash 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 19 / 37
Dockerfile 
Bauanleitung für ein Image 
enthält die notwendigen Anweisungen Erstellen eines Image 
stellt so die Reproduzierbarkeit eines Image bei jeder neuen 
Erstellung sicher 
Anweisungen sind einzeilig und beginnen mit einem 
Schlüsselwort. 
Anweisungen sind nicht case-sensitive. 
(Schlüsselwörter werden gewöhnlich groß geschrieben.) 
Kommentare werden durch ein #-Zeichen eingeleitet. 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 20 / 37
Dockerfile – Beispiel 
Dockerfile für MySQL (Beispiel): 
FROM opensuse:13.1 
MAINTAINER Tux <info@b1-systems.de> 
RUN zypper install -y mysql mysql-server 
ADD start.sh /start 
RUN chmod +x /start 
EXPOSE 3306 
CMD ["/start"] 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 21 / 37
Der Docker-Kosmos 
Docker ist kollaborativ, modular und erweiterbar: 
Atomic/CoreOS spezialisierte Linux-Distributionen zur Ausführung 
von Containern 
Gitlab Collaboration on Code 
Jenkins Continuous Integration System für Servlet Container 
(z.B. Apache Tomcat) 
Puppet Konfigurationsmanagement 
Fig Orchestration 
. . . 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 22 / 37
Docker Orchestration – Fig 
Orchestration Tool für Docker 
erlaubt das gemeinsame Deployment mehrerer Container 
(Multi-Container Service) 
einfach in der Benutzung (Beispiel in der Live-Demo) 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 23 / 37
Docker – 
Live Demo 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 24 / 37
Docker – Live Demo 
Installation 
Container starten 
Handling von Docker 
Verknüpfung von Containern mit Fig 
. . . 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 25 / 37
Docker – Installation openSUSE 13.1 (1/2) 
Repository einrichten: 
$ sudo zypper ar -f 
http://download.opensuse.org/repositories/Virtualization/ 
openSUSE_13.1/ Virtualization 
$ sudo rpm –import 
http://download.opensuse.org/repositories/Virtualization/ 
openSUSE_13.1/repodata/repomd.xml.key 
Installation: 
$ sudo zypper in docker 
Start des Daemons: 
$ sudo systemctl start docker 
$ sudo systemctl enable docker 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 26 / 37
Docker – Installation openSUSE 13.1 (2/2) 
Benutzerrechte durch Gruppenmitgliedschaft: 
$ sudo /usr/sbin/usermod -a -G docker <benutzer> 
Start eines Test-Containers: 
$ sudo docker run --rm -i -t opensuse /bin/bash 
) Bash des Test-Containers: 
bash-4.2# uname -a 
Linux 9a90ca38ebcf 3.11.10-21-desktop 
#1 SMP PREEMPT Mon Jul 21 15:28:46 UTC 2014 (9a9565d) x86_64 
x86_64 x86_64 GNU/Linux 
bash-4.2# 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 27 / 37
Demo 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 28 / 37
Fig – Beispiel 
Automatisches Starten einer WordPress-Instanz 
Webserver und Datenbank getrennt 
Wordpress über Port 80 erreichbar 
Datenbank mit Webserver verlinkt 
Horizontales Scaling der Webserver 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 29 / 37
Fig – WordPress 
Erstellen der Wordpress Instanz: 
$ wget http://wordpress.org/wordpress-3.8.1.tar.gz && tar 
xvfzp wordpress-3.8.1.tar.gz $ cd wordpress 
Dockerfile 
FROM orchardup/php5 
ADD . /code 
Quelle: http://www.fig.sh/wordpress.html 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 30 / 37
Fig – YAML-Datei 
fig.yml: 
web: 
build: . 
command: php -S 0.0.0.0:80 -t /code 
ports: 
- "80:80" 
links: 
- db 
volumes: 
- .:/code 
db: 
image: orchardup/mysql 
environment: 
MYSQL_DATABASE: wordpress 
Quelle: http://www.fig.sh/wordpress.html 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 31 / 37
Fig – WordPress 
wp-config.php – Teil I 
<?php 
define(’DB_NAME’, ’wordpress’); 
define(’DB_USER’, ’root’); 
define(’DB_PASSWORD’, ”); 
define(’DB_HOST’, "db:3306"); 
define(’DB_CHARSET’, ’utf8’); 
define(’DB_COLLATE’, ”); 
define(’AUTH_KEY’, ’b1-systems-docker-demo’); 
define(’SECURE_AUTH_KEY’, ’b1-systems-docker-demo’); 
define(’LOGGED_IN_KEY’, ’b1-systems-docker-demo’); 
define(’NONCE_KEY’, ’b1-systems-docker-demo’); 
define(’AUTH_SALT’, ’b1-systems-docker-demo’); 
define(’SECURE_AUTH_SALT’, ’b1-systems-docker-demo’); 
Quelle: http://www.fig.sh/wordpress.html 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 32 / 37
Fig – WordPress 
wp-config.php – Teil II 
define(’LOGGED_IN_SALT’, ’b1-systems-docker-demo’); 
define(’NONCE_SALT’, ’b1-systems-docker-demo’); 
$table_prefix = ’wp_’; 
define(’WPLANG’, ”); 
define(’WP_DEBUG’, false); 
if ( defined(’ABSPATH’) ) 
define(’ABSPATH’, dirname(__FILE__) . ’’); 
require_once(ABSPATH . ’wpsettings.php’); 
Quelle: http://www.fig.sh/wordpress.html 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 33 / 37
Fig – WordPress 
Fig die Arbeit machen lassen :) 
$ fig up 
$ fig ps 
curl <IP> 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 34 / 37
Demo 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 35 / 37
Links und Quellen 
Homepage des Docker-Projekts http://www.docker.com/ 
Homepage von Fig http://www.fig.sh/ 
Docker on GitHub https://github.com/docker/docker 
Fig on Github https://github.com/docker/fig 
B1 Systems GmbH 
Docker – Automatisches Deployment für 
Linux-Instanzen 36 / 37
Vielen Dank für Ihre Aufmerksamkeit! 
Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de 
oder +49 (0)8457 - 931096 
B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Contenu connexe

Tendances

Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15m1no
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...inovex GmbH
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Dockergedoplan
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...B1 Systems GmbH
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumNicholas Dille
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17remigius-stalder
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenNicholas Dille
 
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)Containerized End-2-End-Testing - Software-QS-Tag (deutsch)
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)Tobias Schneck
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows ContainerThomas Wilhelm Wiefel
 
Containerized End-2-End Testing - JUG Saxony Day
Containerized End-2-End Testing - JUG Saxony DayContainerized End-2-End Testing - JUG Saxony Day
Containerized End-2-End Testing - JUG Saxony DayTobias Schneck
 
Versionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und GitVersionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und Gitpaultcochrane
 
Docker and Raspberry Pi. A dream team?
Docker and Raspberry Pi. A dream team?Docker and Raspberry Pi. A dream team?
Docker and Raspberry Pi. A dream team?Govinda Fichtner
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker ContainerAndreas Koop
 
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Michael Whittaker
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Thorsten Kamann
 

Tendances (20)

Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Docker
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
 
Jenkins Acceleration
Jenkins AccelerationJenkins Acceleration
Jenkins Acceleration
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-Universum
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
Vagrant
VagrantVagrant
Vagrant
 
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)Containerized End-2-End-Testing - Software-QS-Tag (deutsch)
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows Container
 
Containerized End-2-End Testing - JUG Saxony Day
Containerized End-2-End Testing - JUG Saxony DayContainerized End-2-End Testing - JUG Saxony Day
Containerized End-2-End Testing - JUG Saxony Day
 
Versionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und GitVersionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und Git
 
Docker and Raspberry Pi. A dream team?
Docker and Raspberry Pi. A dream team?Docker and Raspberry Pi. A dream team?
Docker and Raspberry Pi. A dream team?
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
 

Similaire à Docker - Automatisches Deployment für Linux-Instanzen

Ausrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerB1 Systems GmbH
 
Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat B1 Systems GmbH
 
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and SpaceSoftwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and SpaceB1 Systems GmbH
 
Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingB1 Systems GmbH
 
OpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenOpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenB1 Systems GmbH
 
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfDockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfSyahri Ramadhan
 
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and SpaceSoftwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and SpaceB1 Systems GmbH
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicateUlrich Krause
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerSteven Grzbielok
 
Docker und IBM Bluemix
Docker und IBM BluemixDocker und IBM Bluemix
Docker und IBM BluemixStephan Max
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python DevelopmentMartin Christen
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Managementinovex GmbH
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXCContainer im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXCBild GmbH & Co. KG
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerStefan Oehrli
 
MCSA 070-740 Prüfungsfragen deutsch
MCSA 070-740 Prüfungsfragen deutschMCSA 070-740 Prüfungsfragen deutsch
MCSA 070-740 Prüfungsfragen deutschholgerschmitz2011
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3Peter Kraume
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 

Similaire à Docker - Automatisches Deployment für Linux-Instanzen (20)

Ausrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit Docker
 
Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat
 
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and SpaceSoftwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
 
Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-Packaging
 
OpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenOpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von Instanzen
 
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfDockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
 
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and SpaceSoftwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicate
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
Docker und IBM Bluemix
Docker und IBM BluemixDocker und IBM Bluemix
Docker und IBM Bluemix
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python Development
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXCContainer im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
 
DOAG Webinar Oracle und Docker
DOAG Webinar Oracle und DockerDOAG Webinar Oracle und Docker
DOAG Webinar Oracle und Docker
 
MCSA 070-740 Prüfungsfragen deutsch
MCSA 070-740 Prüfungsfragen deutschMCSA 070-740 Prüfungsfragen deutsch
MCSA 070-740 Prüfungsfragen deutsch
 
Openshift
OpenshiftOpenshift
Openshift
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 

Plus de B1 Systems GmbH

Ubuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenUbuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenB1 Systems GmbH
 
Android mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen RepoAndroid mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen RepoB1 Systems GmbH
 
Ambilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & HyperionAmbilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & HyperionB1 Systems GmbH
 
B1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AGB1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AGB1 Systems GmbH
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersB1 Systems GmbH
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackB1 Systems GmbH
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackB1 Systems GmbH
 
Bits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der ZeitBits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der ZeitB1 Systems GmbH
 
End of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStackEnd of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStackB1 Systems GmbH
 
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenOpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenB1 Systems GmbH
 
E-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPGE-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPGB1 Systems GmbH
 
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenSome Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenB1 Systems GmbH
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantB1 Systems GmbH
 
Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?B1 Systems GmbH
 
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SEOpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SEB1 Systems GmbH
 
Ceph - Software Defined Storage für die Cloud
Ceph - Software Defined Storage für die CloudCeph - Software Defined Storage für die Cloud
Ceph - Software Defined Storage für die CloudB1 Systems GmbH
 
Migrating deployment processes and Continuous Integration at SAP SE
Migrating deployment processes and Continuous Integration at SAP SEMigrating deployment processes and Continuous Integration at SAP SE
Migrating deployment processes and Continuous Integration at SAP SEB1 Systems GmbH
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersB1 Systems GmbH
 

Plus de B1 Systems GmbH (20)

Ubuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenUbuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreiben
 
Android mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen RepoAndroid mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen Repo
 
Ambilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & HyperionAmbilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & Hyperion
 
B1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AGB1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AG
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for Datacenters
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStack
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStack
 
Bits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der ZeitBits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der Zeit
 
End of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStackEnd of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStack
 
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenOpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
 
systemd im Alltag
systemd im Alltagsystemd im Alltag
systemd im Alltag
 
E-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPGE-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPG
 
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenSome Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit Vagrant
 
Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?
 
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SEOpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
 
Ceph - Software Defined Storage für die Cloud
Ceph - Software Defined Storage für die CloudCeph - Software Defined Storage für die Cloud
Ceph - Software Defined Storage für die Cloud
 
Migrating deployment processes and Continuous Integration at SAP SE
Migrating deployment processes and Continuous Integration at SAP SEMigrating deployment processes and Continuous Integration at SAP SE
Migrating deployment processes and Continuous Integration at SAP SE
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for Datacenters
 

Docker - Automatisches Deployment für Linux-Instanzen

  • 1. Docker – Automatisches Deployment für Linux-Instanzen CommitterConf Essen 2014 28. Oktober 2014 Christian Rost Linux Consultant B1 Systems GmbH rost@b1-systems.de B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development
  • 2. Vorstellung B1 Systems gegründet 2004 primär Linux/Open Source-Themen national & international tätig über 60 Mitarbeiter unabhängig von Soft- und Hardware-Herstellern Leistungsangebot: Beratung & Consulting Support Entwicklung Training Betrieb Lösungen dezentrale Strukturen B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 2 / 37
  • 3. Schwerpunkte Virtualisierung (XEN, KVM & RHEV) Systemmanagement (Spacewalk, Red Hat Satellite, SUSE Manager) Konfigurationsmanagement (Puppet & Chef) Monitoring (Nagios & Icinga) IaaS Cloud (OpenStack & SUSE Cloud & RDO) Hochverfügbarkeit (Pacemaker) Shared Storage (GPFS, OCFS2, DRBD & CEPH) Dateiaustausch (ownCloud) Paketierung (Open Build Service) Administratoren oder Entwickler zur Unterstützung des Teams vor Ort B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 3 / 37
  • 4. Partner B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 4 / 37
  • 5. Docker – Build, Ship and Run Applications B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 5 / 37
  • 6. Kurze Frage vorweg: Wer kennt Docker? Wieviele haben Docker ausprobiert? Setzt jemand Docker produktiv ein? B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 6 / 37
  • 7. Was ist Docker? Open Source Engine zum Standardisieren von Linux Containern (libcontainer) „build, ship and run (distributed) applications“ offene Plattform für Entwickler und Systemadministratoren einfaches Erstellen und Teilen von Container Images Docker ist kein virtueller Server ! ) wenig Overhead B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 7 / 37
  • 8. Eigenschaften Docker ermöglicht ein automatisches Deployment einer standardisierten Prozessumgebung für Linux-Anwendungen. Alle Linux-Anwendungen laufen in Docker. („If it will run on Linux it will run in Docker.“) Docker läuft auf allen gängigen Linux-Distributionen. Alle benötigten Funktionen befinden sich innerhalb des Containers: Bibliotheken Abhängigkeiten Binärdateien . . . Container sind auf die Architektur der Host-Plattform beschränkt. B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 8 / 37
  • 9. Warum Docker? B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 9 / 37
  • 10. Darum Docker! B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 10 / 37
  • 11. Einsatzbereiche einfaches Deployment auch verteilter Anwendungen: Evaluationssysteme POC-Systeme schnelles Bereitstellen reproduzierbarer (Laufzeit-)Umgebungen: für Entwickler in Test-/QA-/Live-Umgebungen Konfigurationstests Kapselung kritischer Dienste in eigenen Containern ) erhöhte Ausfallsicherheit . . . B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 11 / 37
  • 12. VMs vs. Container VMs komplette Maschine einschl. Kernel wird mit Hilfe eines Hypervisors virtualisiert. Container nur Prozesse werden virtualisiert, das OS und Binaries/Libraries gemeinsam genutzt. B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 12 / 37
  • 13. Technologien hinter Docker 1/2 chroot on steroids Go Programming Language Linux Kernel Feature Namespaces Control groups (cgroups) SELinux capabilities netlink netfilter . . . Union file system/AuFS B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 13 / 37
  • 14. Technologien hinter Docker 2/2 Containerformat libcontainer LXC . . . B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 14 / 37
  • 15. Docker – das Ökosystem B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 15 / 37
  • 16. Docker Engine Die Docker Engine besteht aus zwei Teilen: Server Daemon für den Serverprozess zur Verwaltung der Container. Client Client zur Fernsteuerung des Daemons. B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 16 / 37
  • 17. Inside Docker Docker Images read only Template Basis für Container Docker Registries halten Images privat und öffentlich Docker Hub Docker Container wird auf Basis eines Images und Dockerfiles erzeugt hält Änderungen vor – read/write Layer kann zu einem neuen Image „committed“ werden B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 17 / 37
  • 18. Docker – Client-Befehle (Auszug) attach in laufenden Container hängen build Container aus Docker-File bauen commit neues Images aus den Änderungen eines bestehenden Containers erzeugen images Images auflisten kill Container beenden login am Docker Registry Server anmelden ps Container auflisten rm Container löschen run Kommando in einem neuen Container ausführen start beendeten Container starten stop gestarteten Container stoppen B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 18 / 37
  • 19. Docker – Container (Beispiele) Download des „offiziellen“ openSUSE-Containers: $ docker pull opensuse:13.1 Programm innerhalb des Containers ausführen (allgemein): $ docker run opensuse:13.1 <command> <command params> Programm innerhalb des Containers ausführen (Beispiel: Bash): $ docker run -t -i opensuse:13.1 /bin/bash B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 19 / 37
  • 20. Dockerfile Bauanleitung für ein Image enthält die notwendigen Anweisungen Erstellen eines Image stellt so die Reproduzierbarkeit eines Image bei jeder neuen Erstellung sicher Anweisungen sind einzeilig und beginnen mit einem Schlüsselwort. Anweisungen sind nicht case-sensitive. (Schlüsselwörter werden gewöhnlich groß geschrieben.) Kommentare werden durch ein #-Zeichen eingeleitet. B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 20 / 37
  • 21. Dockerfile – Beispiel Dockerfile für MySQL (Beispiel): FROM opensuse:13.1 MAINTAINER Tux <info@b1-systems.de> RUN zypper install -y mysql mysql-server ADD start.sh /start RUN chmod +x /start EXPOSE 3306 CMD ["/start"] B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 21 / 37
  • 22. Der Docker-Kosmos Docker ist kollaborativ, modular und erweiterbar: Atomic/CoreOS spezialisierte Linux-Distributionen zur Ausführung von Containern Gitlab Collaboration on Code Jenkins Continuous Integration System für Servlet Container (z.B. Apache Tomcat) Puppet Konfigurationsmanagement Fig Orchestration . . . B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 22 / 37
  • 23. Docker Orchestration – Fig Orchestration Tool für Docker erlaubt das gemeinsame Deployment mehrerer Container (Multi-Container Service) einfach in der Benutzung (Beispiel in der Live-Demo) B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 23 / 37
  • 24. Docker – Live Demo B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 24 / 37
  • 25. Docker – Live Demo Installation Container starten Handling von Docker Verknüpfung von Containern mit Fig . . . B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 25 / 37
  • 26. Docker – Installation openSUSE 13.1 (1/2) Repository einrichten: $ sudo zypper ar -f http://download.opensuse.org/repositories/Virtualization/ openSUSE_13.1/ Virtualization $ sudo rpm –import http://download.opensuse.org/repositories/Virtualization/ openSUSE_13.1/repodata/repomd.xml.key Installation: $ sudo zypper in docker Start des Daemons: $ sudo systemctl start docker $ sudo systemctl enable docker B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 26 / 37
  • 27. Docker – Installation openSUSE 13.1 (2/2) Benutzerrechte durch Gruppenmitgliedschaft: $ sudo /usr/sbin/usermod -a -G docker <benutzer> Start eines Test-Containers: $ sudo docker run --rm -i -t opensuse /bin/bash ) Bash des Test-Containers: bash-4.2# uname -a Linux 9a90ca38ebcf 3.11.10-21-desktop #1 SMP PREEMPT Mon Jul 21 15:28:46 UTC 2014 (9a9565d) x86_64 x86_64 x86_64 GNU/Linux bash-4.2# B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 27 / 37
  • 28. Demo B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 28 / 37
  • 29. Fig – Beispiel Automatisches Starten einer WordPress-Instanz Webserver und Datenbank getrennt Wordpress über Port 80 erreichbar Datenbank mit Webserver verlinkt Horizontales Scaling der Webserver B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 29 / 37
  • 30. Fig – WordPress Erstellen der Wordpress Instanz: $ wget http://wordpress.org/wordpress-3.8.1.tar.gz && tar xvfzp wordpress-3.8.1.tar.gz $ cd wordpress Dockerfile FROM orchardup/php5 ADD . /code Quelle: http://www.fig.sh/wordpress.html B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 30 / 37
  • 31. Fig – YAML-Datei fig.yml: web: build: . command: php -S 0.0.0.0:80 -t /code ports: - "80:80" links: - db volumes: - .:/code db: image: orchardup/mysql environment: MYSQL_DATABASE: wordpress Quelle: http://www.fig.sh/wordpress.html B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 31 / 37
  • 32. Fig – WordPress wp-config.php – Teil I <?php define(’DB_NAME’, ’wordpress’); define(’DB_USER’, ’root’); define(’DB_PASSWORD’, ”); define(’DB_HOST’, "db:3306"); define(’DB_CHARSET’, ’utf8’); define(’DB_COLLATE’, ”); define(’AUTH_KEY’, ’b1-systems-docker-demo’); define(’SECURE_AUTH_KEY’, ’b1-systems-docker-demo’); define(’LOGGED_IN_KEY’, ’b1-systems-docker-demo’); define(’NONCE_KEY’, ’b1-systems-docker-demo’); define(’AUTH_SALT’, ’b1-systems-docker-demo’); define(’SECURE_AUTH_SALT’, ’b1-systems-docker-demo’); Quelle: http://www.fig.sh/wordpress.html B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 32 / 37
  • 33. Fig – WordPress wp-config.php – Teil II define(’LOGGED_IN_SALT’, ’b1-systems-docker-demo’); define(’NONCE_SALT’, ’b1-systems-docker-demo’); $table_prefix = ’wp_’; define(’WPLANG’, ”); define(’WP_DEBUG’, false); if ( defined(’ABSPATH’) ) define(’ABSPATH’, dirname(__FILE__) . ’’); require_once(ABSPATH . ’wpsettings.php’); Quelle: http://www.fig.sh/wordpress.html B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 33 / 37
  • 34. Fig – WordPress Fig die Arbeit machen lassen :) $ fig up $ fig ps curl <IP> B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 34 / 37
  • 35. Demo B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 35 / 37
  • 36. Links und Quellen Homepage des Docker-Projekts http://www.docker.com/ Homepage von Fig http://www.fig.sh/ Docker on GitHub https://github.com/docker/docker Fig on Github https://github.com/docker/fig B1 Systems GmbH Docker – Automatisches Deployment für Linux-Instanzen 36 / 37
  • 37. Vielen Dank für Ihre Aufmerksamkeit! Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de oder +49 (0)8457 - 931096 B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development