SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
Docker – Containervirtualisierung
leicht gemacht
CeBIT 2015 18. März 2015
Michel Rode
Linux/Unix Consultant & Trainer
B1 Systems GmbH
rode@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 – Containervirtualisierung leicht
gemacht 2 / 47
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 – Containervirtualisierung leicht
gemacht 3 / 47
Docker –
Build, Ship and Run Applications
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 4 / 47
Was ist Docker?
Open Source Engine zum Standardisieren von
Prozessumgebungen unter Linux
„build, ship and run (distributed) applications“
offene Plattform für Entwickler und Systemadministratoren
nutzt Container-Technologien (LXC/libcontainer)
einfaches Erstellen und Teilen von Container Images
Docker ist kein virtueller Server! (⇒ wenig Overhead)
„Docker“ bezeichnet sowohl den Server-Daemon als auch den
Client samt CLI
Open-Source-Projekt, veröffentlicht unter der Apache-2.0-Lizenz
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 5 / 47
Eigenschaften
Docker ermöglicht ein automatisches Deployment einer
standardisierten Prozessumgebung für Linux-Anwendungen.
Alle Linux-Anwendungen laufen 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 – Containervirtualisierung leicht
gemacht 6 / 47
Vorteile
klein
schnell
sicher
flexibel
reproduzierbar
portabel
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 7 / 47
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 – Containervirtualisierung leicht
gemacht 8 / 47
Einsatzbereiche
Docker ermöglicht ein schnelles Bereitstellen reproduzierbarer
(Laufzeit-)Umgebungen für Entwickler und Systemadministratoren:
Evaluations-Systeme
POC-Systeme
Test-Systeme
QA-Systeme
Live-Umgebungen
Konfigurationstests
. . .
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 9 / 47
Container Execution Environments
Docker kann derzeit zwei Execution Driver für die Erstellung von
Containern nutzen:
LXC
bewährte leichtgewichtige Prozessvirtualisierung
im Linux-Kernel
Libcontainer
neue Eigenentwicklung von Docker zur Nutzung
der Kernel-Features
Libcontainer ist Default seit Version 1.0
Ein einzelner Kernel sorgt für die Limitierung und Isolation der
Ressourcen.
⇒ Emulation von Hardware entfällt
⇒ Performance-Overhead wird minimiert
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 10 / 47
Linux Containers (LXC)
leichtgewichtiger Virtualisierungsmechanismus
(Prozessvirtualisierung) mit modularem Design
verwaltet Ressourcen und Prozessgruppen voneinander isoliert in
so genannten Containern
nutzt vorhandene Kernel-Features wie Capabilities, Control
Groups und Namespaces
„chroot on steroids“ (http://lxc.sourceforge.net)
seit 2.6.29 Teil des Upstream Kernels (und damit aller gängigen
Distributionen)
freie Software (größtenteils GNU-LGPL-Lizenz)
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 11 / 47
libcontainer I
Go-Implementation, um Linux-Kernel-Namespaces ohne weitere
Abhängigkeiten für Container zu nutzen
vollständig unabhängig von LXC
verwaltet als Teil von Docker die nötigen Kernel-Features:
Capabilities
Control Groups
Namespaces
Apparmor-/SELinux-Profile
Netzwerkschnittstellen
Firewall-Regeln
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 12 / 47
libcontainer II
Grundlage für die Windows-Implementierung
Grundlage für weitere Entwicklungen
Red Hat, Google, Canonical & Parallels
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 13 / 47
Capabilities
teilen die Rechte eines privilegierten Benutzers (root) in
bestimmte Teilbereiche auf
können für unterschiedliche Prozesse individuell gesetzt werden
⇒ geringere Gefahr eines Missbrauchs von Rechten
da Container = Prozesse besteht die Möglichkeit, bestimmte
Rechte innerhalb eines Containers einzuräumen
minimieren Wechselwirkungen (z. B. beim Mounten des
root-Dateisystems mit read only beim Herunterfahren eines
Containers)
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 14 / 47
CGroups 1/2
fassen Prozesse in einer hierarchischen Struktur zusammen.
ermöglichen es, den Zugriff dieser Prozesse auf Ressourcen zu
beschränken oder zu unterbinden und so die Nutzung dieser
Ressourcen zu limitieren.
Typische Ressourcen sind Prozessoren, Arbeitsspeicher,
Netzwerkressourcen oder Kernel Namespaces.
Die hierarchische Struktur ermöglicht es, Eigenschaften von
Subsystemen auf mehreren Ebenen zu unterteilen.
Zu jeder dieser Ebenen lässt sich die Nutzung der möglichen
Ressourcen weiter einschränken.
Prozesse (Container) lassen sich dann gezielt in die Tasklist der
betreffenden CGroup aufnehmen.
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 15 / 47
CGroups 2/2
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 16 / 47
Chroot
Funktion unter Unix-Systemen, um im laufenden System ein
neues Rootverzeichnis zuzuweisen
primär für das Aufsetzen virtueller Umgebungen entwickelt
einfache Möglichkeit, nicht vertrauenswürdige Programme zu
isolieren (aka. „Sandbox“)
einfacher Jail-Mechanismus – aus dem aber durchaus
ausgebrochen werden kann
Prozess im Chroot-Verzeichnis kann nicht mehr auf Dateien
außerhalb dieses Verzeichnisses zugreifen
Programm muss im Chroot-Verzeichnis eine komplette
Umgebung vorfinden (Platz für temporäre Dateien,
Konfigurationsdateien, Programmbibliotheken, . . . )
keine Ressourcen-Limitierung
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 17 / 47
Kernel Namespaces
Integration von Namespaces im Kernel mit Version 2.6.19
Namespaces helfen, Prozesse voneinander zu isolieren
mögliche Eigenschaften zum Definieren eines Namensraumes:
ipc System-V-Interprozess-Kommunikation (IPC)
uts Hostname
mnt Mountpoints und Dateisysteme
pid Prozesse
net Netzwerk-Stack
user Benutzer (UIDs)
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 18 / 47
Übersicht
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 19 / 47
Images, Container und Registries
Docker Images
read only Template
Basis für Container
Docker Container
wird auf Basis eines Image und Dockerfile erzeugt
hält zur Laufzeit die Änderungen vor (Read-/Write-Layer)
Änderungen können in einem neuen Image übernommen
(„committed“) werden
Docker Registries
Image Repository
privat und öffentlich
zentrale Ressource: Docker Hub
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 20 / 47
Bestandteile – Die Docker-Engine
Die Docker Engine besteht aus
zwei Teilen:
Server Daemon für den
Serverprozess zur
Verwaltung der
Container
Client Client zur
(Fern-)Steuerung
des Daemons
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 21 / 47
Docker und die weitere Welt
Docker ist kollaborativ, modular und erweiterbar:
Atomic atomar aufgebautes Hostsystem für Docker-Container
CoreOS minimales Linux als Container-Betriebssystem
Gitlab Collaboration on Code
Jenkins Continuous Integration System für Servlet Container
(z. B. Apache Tomcat)
Puppet Konfigurationsmanagement
Fig Orchestration
Packer Erstellung fertiger Images mittels Templates
. . .
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 22 / 47
Docker Hub
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 23 / 47
Konfiguration
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 24 / 47
Container – Ressourcen (Default)
CPU 1024 CPU-Shares für neue Container durch CGroups
(Default)
Speicher gesamter Arbeitsspeicher des Hosts nutzbar (Default)
Block Devices keine Bandbreiteneinschränkung beim Lese- und
Schreibzugriff auf Blockgeräte (Default)
Netzwerk automatisch über Linux-Bridge docker0 mit dem
Netzwerk des Hosts verbunden (Default)
Storage 10 GB Festplattenplatz pro Container (Default)
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 25 / 47
Treiber für Storage
Der Docker-Daemon unterstützt drei verschiedene Treiber für
Storage:
aufs alt, nicht im Kernel (nur via Patchset), schnell (!!!)
devicemapper Thin Provisioning und Copy on Write (CoW),
Snapshots, Direct- &Loop-LVM
btrfs sehr schnell, Cow, Snapshots, default teilweise
OverlayFS sehr schnell, in der Entwicklung
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 26 / 47
Treiber für Storage
Storage-Treiber setzen:
# docker -s <devicemapper|btrfs|overlayfs...>
Storage-Informationen abfragen:
# docker info
[...]
Storage Driver: devicemapper
Pool Name: docker-253:2-1443148-pool
Pool Blocksize: 65.54 kB
Data file: /var/lib/docker/devicemapper/devicemapper/data
Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata
Data Space Used: 5.739 GB
Data Space Total: 107.4 GB
Metadata Space Used: 5.976 MB
Metadata Space Total: 2.147 GB
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 27 / 47
Storage, Images und Container
layerbasiert
bis auf den obersten
alle read-only
beinhalten
Änderungen/Diffs
normalerweise als
Base-Image-Scratch
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 28 / 47
Dockerfiles
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 29 / 47
Dockerfiles – Grundlagen
Bauanleitung für ein Image
enthält die notwendigen Anweisungen zum 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
gewöhnlich groß)
Kommentare werden durch ein #-Zeichen eingeleitet
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 30 / 47
Dockerfiles verwenden
Minimalistisches Dockerfile:
# johndoe/nodejs
# VERSION 0.0.1
FROM <repo>
MAINTAINER John Doe <johndoe@b1-systems.de>
Dockerfile verwenden (hier: aktuelles Verzeichnis):
$ docker build .
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 31 / 47
Dockerfiles – Anweisungen
ADD/COPY Kopieren lokaler Dateien vom Host in den Container
CMD Aufruf für Programme innerhalb eines Containers
EXPOSE Portadresse für das Netzwerk
FROM Repository als Basis für das Image
RUN (Kommandozeilen-)Befehl ausführen
MAINTAINER Ersteller des Dockerfiles (optional)
VERSION Versionsnummer (optional)
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 32 / 47
Dockerfiles – Beispiel
Dockerfile für MySQL-Server (Beispiel):
FROM rhel
MAINTAINER John Doe <info@b1-systems.de>
RUN yum install -y mysql mysql-server
ADD start.sh /start
RUN chmod +x /start
EXPOSE 3306
CMD ["/start"]
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 33 / 47
GitLab – kollaborativ entwickeln
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 34 / 47
Features
komplett frei und Open Source
Verwalten und Durchsuchen von Git Repositories
eigener Code auf eigenem Server
Verwaltung von Zugriffsrechten
Ausführen von Code Reviews und Merge Requests
Hooks
. . .
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 35 / 47
GitLab 1/3
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 36 / 47
GitLab 2/3
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 37 / 47
GitLab 3/3
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 38 / 47
Jenkins – Continuous Integration
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 39 / 47
Was ist Jenkins?
Jenkins ist ein serverbasiertes System für Continuous
Integration, das in einem Servlet Container (wie Apache
Tomcat) betrieben wird.
Jenkins unterstützt SCM Tools wie AccuRev, CVS, Subversion,
Git, Mercurial, Perforce, Clearcase und RCT und kann Apache
Ant und Maven ausführen.
Jenkins ist freie Software; lizenziert unter der MIT-Licence.
Builds können auf unterschiedliche Weise gestartet werden, auch
per Commit-Trigger eines Versionskontrollsystems.
Jenkins überwacht die Ausführung wiederholter Jobs wie z. B.
das Bauen eines Softwareprojekts oder Cronjobs.
Jenkins ist in Java geschrieben.
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 40 / 47
Jenkins 1/3
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 41 / 47
Jenkins 2/3
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 42 / 47
Jenkins 3/3
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 43 / 47
Jenkins Plugins
Docker Buildstep verschiedene Docker-Kommandos zu einem Job als
Build Step hinzufügen
Docker publish Projekte mittels Dockerfile bauen und sie in die
Docker Registry laden
Git Verwendung von Git als Build-SCM
Gitlab Build Trigger, der GitLab vorgaukelt, dass Jenkins ein
GitLab CI ist
Build Pipeline Plugin bietet Ansicht der Build Pipeline von
Upstream- und Downstream-verbundenen Jobs, die eine
Build Pipeline bilden
Downstream-Ext Plugin unterstützt erweiterte Konfiguration zum
Triggern von Downstream Builds.
Publish Over SSH Plugin Daten- und Dateitransfer (SSH)
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 44 / 47
Jenkins – Build Pipeline Plugin
bildet die Build Pipeline ab
erlaubt Festlegung manueller Trigger für Jobs, die vor der
Ausführung ein Eingreifen erfordern, z. B. Abnahmeprozess
außerhalb von Jenkins
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 45 / 47
Jenkins – Downstream-Ext Plugin
Dieses Plugin bietet weitreichende Konfigurationsmöglichkeiten zum
Triggern von Downstream Builds:
triggert Builds nur, wenn ein Downstream-Job Änderungen im
SCM aufweist
triggert Builds, wenn ein Upstream Build
besser/gleich/schlechter als ein definiertes Ergebnis abschneidet
(SUCCESS, UNSTABLE, FAILURE, ABORTED)
für Matrix (aka Multi-Configuration) Jobs kann festgelegt
werden, welcher Teil des Jobs den Downstream Job triggern soll:
parent only, configuration only oder beide
B1 Systems GmbH
Docker – Containervirtualisierung leicht
gemacht 46 / 47
Vielen Dank für Ihre Aufmerksamkeit!
Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de
oder +49 (0)8457 - 931096.
Besuchen Sie uns auch hier auf der CeBIT,
Halle 6, H16/312.
B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development

Weitere ähnliche Inhalte

Was ist angesagt?

Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Aananth C N
 
Embedded Linux/ Debian with ARM64 Platform
Embedded Linux/ Debian with ARM64 PlatformEmbedded Linux/ Debian with ARM64 Platform
Embedded Linux/ Debian with ARM64 PlatformSZ Lin
 
Windows deployment on bare metal using ironic
Windows deployment on bare metal using ironicWindows deployment on bare metal using ironic
Windows deployment on bare metal using ironicSrinivasa Acharya
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackShapeBlue
 
The internals and the latest trends of container runtimes
The internals and the latest trends of container runtimesThe internals and the latest trends of container runtimes
The internals and the latest trends of container runtimesAkihiro Suda
 
[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOSAkihiro Suda
 
VMware vSphere Performance Troubleshooting
VMware vSphere Performance TroubleshootingVMware vSphere Performance Troubleshooting
VMware vSphere Performance TroubleshootingDan Brinkmann
 
Qemu & KVM Guide #1 (intro & basic)
Qemu & KVM Guide #1 (intro & basic)Qemu & KVM Guide #1 (intro & basic)
Qemu & KVM Guide #1 (intro & basic)JungIn Jung
 
Paul Angus - CloudStack Backup and Recovery Framework
Paul Angus - CloudStack Backup and Recovery FrameworkPaul Angus - CloudStack Backup and Recovery Framework
Paul Angus - CloudStack Backup and Recovery FrameworkShapeBlue
 
Different types of virtualisation
Different types of virtualisationDifferent types of virtualisation
Different types of virtualisationAlessandro Guli
 
Dell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready NodesDell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready NodesAndrew McDaniel
 
Linux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA'sLinux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA'sMydbops
 
What's New In Apache CloudStack 4.17
What's New In Apache CloudStack 4.17What's New In Apache CloudStack 4.17
What's New In Apache CloudStack 4.17ShapeBlue
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017Docker, Inc.
 
Hướng dẫn cấu hình database availability group
Hướng dẫn cấu hình database availability groupHướng dẫn cấu hình database availability group
Hướng dẫn cấu hình database availability grouplaonap166
 
Android booting sequece and setup and debugging
Android booting sequece and setup and debuggingAndroid booting sequece and setup and debugging
Android booting sequece and setup and debuggingUtkarsh Mankad
 
IBM Spectrum Scale and Its Use for Content Management
 IBM Spectrum Scale and Its Use for Content Management IBM Spectrum Scale and Its Use for Content Management
IBM Spectrum Scale and Its Use for Content ManagementSandeep Patil
 

Was ist angesagt? (20)

Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+
 
Embedded Linux/ Debian with ARM64 Platform
Embedded Linux/ Debian with ARM64 PlatformEmbedded Linux/ Debian with ARM64 Platform
Embedded Linux/ Debian with ARM64 Platform
 
Windows deployment on bare metal using ironic
Windows deployment on bare metal using ironicWindows deployment on bare metal using ironic
Windows deployment on bare metal using ironic
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
 
The internals and the latest trends of container runtimes
The internals and the latest trends of container runtimesThe internals and the latest trends of container runtimes
The internals and the latest trends of container runtimes
 
[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS[KubeCon EU 2022] Running containerd and k3s on macOS
[KubeCon EU 2022] Running containerd and k3s on macOS
 
Was ist Docker?
Was ist Docker?Was ist Docker?
Was ist Docker?
 
Linux file system
Linux file systemLinux file system
Linux file system
 
IBM PowerVC Introduction and Configuration
IBM PowerVC Introduction and ConfigurationIBM PowerVC Introduction and Configuration
IBM PowerVC Introduction and Configuration
 
VMware vSphere Performance Troubleshooting
VMware vSphere Performance TroubleshootingVMware vSphere Performance Troubleshooting
VMware vSphere Performance Troubleshooting
 
Qemu & KVM Guide #1 (intro & basic)
Qemu & KVM Guide #1 (intro & basic)Qemu & KVM Guide #1 (intro & basic)
Qemu & KVM Guide #1 (intro & basic)
 
Paul Angus - CloudStack Backup and Recovery Framework
Paul Angus - CloudStack Backup and Recovery FrameworkPaul Angus - CloudStack Backup and Recovery Framework
Paul Angus - CloudStack Backup and Recovery Framework
 
Different types of virtualisation
Different types of virtualisationDifferent types of virtualisation
Different types of virtualisation
 
Dell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready NodesDell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready Nodes
 
Linux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA'sLinux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA's
 
What's New In Apache CloudStack 4.17
What's New In Apache CloudStack 4.17What's New In Apache CloudStack 4.17
What's New In Apache CloudStack 4.17
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Hướng dẫn cấu hình database availability group
Hướng dẫn cấu hình database availability groupHướng dẫn cấu hình database availability group
Hướng dẫn cấu hình database availability group
 
Android booting sequece and setup and debugging
Android booting sequece and setup and debuggingAndroid booting sequece and setup and debugging
Android booting sequece and setup and debugging
 
IBM Spectrum Scale and Its Use for Content Management
 IBM Spectrum Scale and Its Use for Content Management IBM Spectrum Scale and Its Use for Content Management
IBM Spectrum Scale and Its Use for Content Management
 

Ähnlich wie Docker - Containervirtualisierung leichtgemacht

Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen B1 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
 
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
 
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
 
OpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenOpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenB1 Systems GmbH
 
Ausfallsichere Kultur mit Plone
Ausfallsichere Kultur mit PloneAusfallsichere Kultur mit Plone
Ausfallsichere Kultur mit PloneJens Klein
 
Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingB1 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
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
Roadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesRoadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesDigicomp Academy AG
 
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
 
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis BungartOSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis BungartNETWAYS
 

Ähnlich wie Docker - Containervirtualisierung leichtgemacht (20)

Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
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
 
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...
 
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
 
OpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenOpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von Instanzen
 
Ausfallsichere Kultur mit Plone
Ausfallsichere Kultur mit PloneAusfallsichere Kultur mit Plone
Ausfallsichere Kultur mit Plone
 
Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-Packaging
 
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
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
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
 
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
 
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
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
 
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
 
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
 
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
 
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)
 
Roadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & FeaturesRoadshow Oracle Database 12c: News & Features
Roadshow Oracle Database 12c: News & Features
 
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...
 
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis BungartOSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
OSMC 2008 | Nagios Hochverfügbar mit hearbeat V2 by Jan Dennis Bungart
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data ImputationFEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data ImputationOPEN KNOWLEDGE GmbH
 
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudFrom Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudOPEN KNOWLEDGE GmbH
 
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...OPEN KNOWLEDGE GmbH
 
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Markus Unterauer
 
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 

Kürzlich hochgeladen (6)

FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data ImputationFEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
 
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudFrom Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
 
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
 
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
 
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 

Docker - Containervirtualisierung leichtgemacht

  • 1. Docker – Containervirtualisierung leicht gemacht CeBIT 2015 18. März 2015 Michel Rode Linux/Unix Consultant & Trainer B1 Systems GmbH rode@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 – Containervirtualisierung leicht gemacht 2 / 47
  • 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 – Containervirtualisierung leicht gemacht 3 / 47
  • 4. Docker – Build, Ship and Run Applications B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 4 / 47
  • 5. Was ist Docker? Open Source Engine zum Standardisieren von Prozessumgebungen unter Linux „build, ship and run (distributed) applications“ offene Plattform für Entwickler und Systemadministratoren nutzt Container-Technologien (LXC/libcontainer) einfaches Erstellen und Teilen von Container Images Docker ist kein virtueller Server! (⇒ wenig Overhead) „Docker“ bezeichnet sowohl den Server-Daemon als auch den Client samt CLI Open-Source-Projekt, veröffentlicht unter der Apache-2.0-Lizenz B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 5 / 47
  • 6. Eigenschaften Docker ermöglicht ein automatisches Deployment einer standardisierten Prozessumgebung für Linux-Anwendungen. Alle Linux-Anwendungen laufen 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 – Containervirtualisierung leicht gemacht 6 / 47
  • 8. 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 – Containervirtualisierung leicht gemacht 8 / 47
  • 9. Einsatzbereiche Docker ermöglicht ein schnelles Bereitstellen reproduzierbarer (Laufzeit-)Umgebungen für Entwickler und Systemadministratoren: Evaluations-Systeme POC-Systeme Test-Systeme QA-Systeme Live-Umgebungen Konfigurationstests . . . B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 9 / 47
  • 10. Container Execution Environments Docker kann derzeit zwei Execution Driver für die Erstellung von Containern nutzen: LXC bewährte leichtgewichtige Prozessvirtualisierung im Linux-Kernel Libcontainer neue Eigenentwicklung von Docker zur Nutzung der Kernel-Features Libcontainer ist Default seit Version 1.0 Ein einzelner Kernel sorgt für die Limitierung und Isolation der Ressourcen. ⇒ Emulation von Hardware entfällt ⇒ Performance-Overhead wird minimiert B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 10 / 47
  • 11. Linux Containers (LXC) leichtgewichtiger Virtualisierungsmechanismus (Prozessvirtualisierung) mit modularem Design verwaltet Ressourcen und Prozessgruppen voneinander isoliert in so genannten Containern nutzt vorhandene Kernel-Features wie Capabilities, Control Groups und Namespaces „chroot on steroids“ (http://lxc.sourceforge.net) seit 2.6.29 Teil des Upstream Kernels (und damit aller gängigen Distributionen) freie Software (größtenteils GNU-LGPL-Lizenz) B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 11 / 47
  • 12. libcontainer I Go-Implementation, um Linux-Kernel-Namespaces ohne weitere Abhängigkeiten für Container zu nutzen vollständig unabhängig von LXC verwaltet als Teil von Docker die nötigen Kernel-Features: Capabilities Control Groups Namespaces Apparmor-/SELinux-Profile Netzwerkschnittstellen Firewall-Regeln B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 12 / 47
  • 13. libcontainer II Grundlage für die Windows-Implementierung Grundlage für weitere Entwicklungen Red Hat, Google, Canonical & Parallels B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 13 / 47
  • 14. Capabilities teilen die Rechte eines privilegierten Benutzers (root) in bestimmte Teilbereiche auf können für unterschiedliche Prozesse individuell gesetzt werden ⇒ geringere Gefahr eines Missbrauchs von Rechten da Container = Prozesse besteht die Möglichkeit, bestimmte Rechte innerhalb eines Containers einzuräumen minimieren Wechselwirkungen (z. B. beim Mounten des root-Dateisystems mit read only beim Herunterfahren eines Containers) B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 14 / 47
  • 15. CGroups 1/2 fassen Prozesse in einer hierarchischen Struktur zusammen. ermöglichen es, den Zugriff dieser Prozesse auf Ressourcen zu beschränken oder zu unterbinden und so die Nutzung dieser Ressourcen zu limitieren. Typische Ressourcen sind Prozessoren, Arbeitsspeicher, Netzwerkressourcen oder Kernel Namespaces. Die hierarchische Struktur ermöglicht es, Eigenschaften von Subsystemen auf mehreren Ebenen zu unterteilen. Zu jeder dieser Ebenen lässt sich die Nutzung der möglichen Ressourcen weiter einschränken. Prozesse (Container) lassen sich dann gezielt in die Tasklist der betreffenden CGroup aufnehmen. B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 15 / 47
  • 16. CGroups 2/2 B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 16 / 47
  • 17. Chroot Funktion unter Unix-Systemen, um im laufenden System ein neues Rootverzeichnis zuzuweisen primär für das Aufsetzen virtueller Umgebungen entwickelt einfache Möglichkeit, nicht vertrauenswürdige Programme zu isolieren (aka. „Sandbox“) einfacher Jail-Mechanismus – aus dem aber durchaus ausgebrochen werden kann Prozess im Chroot-Verzeichnis kann nicht mehr auf Dateien außerhalb dieses Verzeichnisses zugreifen Programm muss im Chroot-Verzeichnis eine komplette Umgebung vorfinden (Platz für temporäre Dateien, Konfigurationsdateien, Programmbibliotheken, . . . ) keine Ressourcen-Limitierung B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 17 / 47
  • 18. Kernel Namespaces Integration von Namespaces im Kernel mit Version 2.6.19 Namespaces helfen, Prozesse voneinander zu isolieren mögliche Eigenschaften zum Definieren eines Namensraumes: ipc System-V-Interprozess-Kommunikation (IPC) uts Hostname mnt Mountpoints und Dateisysteme pid Prozesse net Netzwerk-Stack user Benutzer (UIDs) B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 18 / 47
  • 19. Übersicht B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 19 / 47
  • 20. Images, Container und Registries Docker Images read only Template Basis für Container Docker Container wird auf Basis eines Image und Dockerfile erzeugt hält zur Laufzeit die Änderungen vor (Read-/Write-Layer) Änderungen können in einem neuen Image übernommen („committed“) werden Docker Registries Image Repository privat und öffentlich zentrale Ressource: Docker Hub B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 20 / 47
  • 21. Bestandteile – Die Docker-Engine Die Docker Engine besteht aus zwei Teilen: Server Daemon für den Serverprozess zur Verwaltung der Container Client Client zur (Fern-)Steuerung des Daemons B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 21 / 47
  • 22. Docker und die weitere Welt Docker ist kollaborativ, modular und erweiterbar: Atomic atomar aufgebautes Hostsystem für Docker-Container CoreOS minimales Linux als Container-Betriebssystem Gitlab Collaboration on Code Jenkins Continuous Integration System für Servlet Container (z. B. Apache Tomcat) Puppet Konfigurationsmanagement Fig Orchestration Packer Erstellung fertiger Images mittels Templates . . . B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 22 / 47
  • 23. Docker Hub B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 23 / 47
  • 24. Konfiguration B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 24 / 47
  • 25. Container – Ressourcen (Default) CPU 1024 CPU-Shares für neue Container durch CGroups (Default) Speicher gesamter Arbeitsspeicher des Hosts nutzbar (Default) Block Devices keine Bandbreiteneinschränkung beim Lese- und Schreibzugriff auf Blockgeräte (Default) Netzwerk automatisch über Linux-Bridge docker0 mit dem Netzwerk des Hosts verbunden (Default) Storage 10 GB Festplattenplatz pro Container (Default) B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 25 / 47
  • 26. Treiber für Storage Der Docker-Daemon unterstützt drei verschiedene Treiber für Storage: aufs alt, nicht im Kernel (nur via Patchset), schnell (!!!) devicemapper Thin Provisioning und Copy on Write (CoW), Snapshots, Direct- &Loop-LVM btrfs sehr schnell, Cow, Snapshots, default teilweise OverlayFS sehr schnell, in der Entwicklung B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 26 / 47
  • 27. Treiber für Storage Storage-Treiber setzen: # docker -s <devicemapper|btrfs|overlayfs...> Storage-Informationen abfragen: # docker info [...] Storage Driver: devicemapper Pool Name: docker-253:2-1443148-pool Pool Blocksize: 65.54 kB Data file: /var/lib/docker/devicemapper/devicemapper/data Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata Data Space Used: 5.739 GB Data Space Total: 107.4 GB Metadata Space Used: 5.976 MB Metadata Space Total: 2.147 GB B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 27 / 47
  • 28. Storage, Images und Container layerbasiert bis auf den obersten alle read-only beinhalten Änderungen/Diffs normalerweise als Base-Image-Scratch B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 28 / 47
  • 29. Dockerfiles B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 29 / 47
  • 30. Dockerfiles – Grundlagen Bauanleitung für ein Image enthält die notwendigen Anweisungen zum 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 gewöhnlich groß) Kommentare werden durch ein #-Zeichen eingeleitet B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 30 / 47
  • 31. Dockerfiles verwenden Minimalistisches Dockerfile: # johndoe/nodejs # VERSION 0.0.1 FROM <repo> MAINTAINER John Doe <johndoe@b1-systems.de> Dockerfile verwenden (hier: aktuelles Verzeichnis): $ docker build . B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 31 / 47
  • 32. Dockerfiles – Anweisungen ADD/COPY Kopieren lokaler Dateien vom Host in den Container CMD Aufruf für Programme innerhalb eines Containers EXPOSE Portadresse für das Netzwerk FROM Repository als Basis für das Image RUN (Kommandozeilen-)Befehl ausführen MAINTAINER Ersteller des Dockerfiles (optional) VERSION Versionsnummer (optional) B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 32 / 47
  • 33. Dockerfiles – Beispiel Dockerfile für MySQL-Server (Beispiel): FROM rhel MAINTAINER John Doe <info@b1-systems.de> RUN yum install -y mysql mysql-server ADD start.sh /start RUN chmod +x /start EXPOSE 3306 CMD ["/start"] B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 33 / 47
  • 34. GitLab – kollaborativ entwickeln B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 34 / 47
  • 35. Features komplett frei und Open Source Verwalten und Durchsuchen von Git Repositories eigener Code auf eigenem Server Verwaltung von Zugriffsrechten Ausführen von Code Reviews und Merge Requests Hooks . . . B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 35 / 47
  • 36. GitLab 1/3 B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 36 / 47
  • 37. GitLab 2/3 B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 37 / 47
  • 38. GitLab 3/3 B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 38 / 47
  • 39. Jenkins – Continuous Integration B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 39 / 47
  • 40. Was ist Jenkins? Jenkins ist ein serverbasiertes System für Continuous Integration, das in einem Servlet Container (wie Apache Tomcat) betrieben wird. Jenkins unterstützt SCM Tools wie AccuRev, CVS, Subversion, Git, Mercurial, Perforce, Clearcase und RCT und kann Apache Ant und Maven ausführen. Jenkins ist freie Software; lizenziert unter der MIT-Licence. Builds können auf unterschiedliche Weise gestartet werden, auch per Commit-Trigger eines Versionskontrollsystems. Jenkins überwacht die Ausführung wiederholter Jobs wie z. B. das Bauen eines Softwareprojekts oder Cronjobs. Jenkins ist in Java geschrieben. B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 40 / 47
  • 41. Jenkins 1/3 B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 41 / 47
  • 42. Jenkins 2/3 B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 42 / 47
  • 43. Jenkins 3/3 B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 43 / 47
  • 44. Jenkins Plugins Docker Buildstep verschiedene Docker-Kommandos zu einem Job als Build Step hinzufügen Docker publish Projekte mittels Dockerfile bauen und sie in die Docker Registry laden Git Verwendung von Git als Build-SCM Gitlab Build Trigger, der GitLab vorgaukelt, dass Jenkins ein GitLab CI ist Build Pipeline Plugin bietet Ansicht der Build Pipeline von Upstream- und Downstream-verbundenen Jobs, die eine Build Pipeline bilden Downstream-Ext Plugin unterstützt erweiterte Konfiguration zum Triggern von Downstream Builds. Publish Over SSH Plugin Daten- und Dateitransfer (SSH) B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 44 / 47
  • 45. Jenkins – Build Pipeline Plugin bildet die Build Pipeline ab erlaubt Festlegung manueller Trigger für Jobs, die vor der Ausführung ein Eingreifen erfordern, z. B. Abnahmeprozess außerhalb von Jenkins B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 45 / 47
  • 46. Jenkins – Downstream-Ext Plugin Dieses Plugin bietet weitreichende Konfigurationsmöglichkeiten zum Triggern von Downstream Builds: triggert Builds nur, wenn ein Downstream-Job Änderungen im SCM aufweist triggert Builds, wenn ein Upstream Build besser/gleich/schlechter als ein definiertes Ergebnis abschneidet (SUCCESS, UNSTABLE, FAILURE, ABORTED) für Matrix (aka Multi-Configuration) Jobs kann festgelegt werden, welcher Teil des Jobs den Downstream Job triggern soll: parent only, configuration only oder beide B1 Systems GmbH Docker – Containervirtualisierung leicht gemacht 46 / 47
  • 47. Vielen Dank für Ihre Aufmerksamkeit! Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de oder +49 (0)8457 - 931096. Besuchen Sie uns auch hier auf der CeBIT, Halle 6, H16/312. B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development