View
223
Download
0
Category
Preview:
Citation preview
Über michPeter DaumEntwickler seit 13 JahrenJava Developer @ tyntecJava EE / Spring im OSS / BSSTwitter - @MrPaeddahBlog - www.coders-kitchen.com
AgendaDocker?!Was ist ein ContainerTraditionelle VM vs. ContainerDocker - BasicsDocker - AdvancedUse casesWarum Docker?Die dunkle SeiteTooling
Docker?!Docker ist eine Software zur Definition und Verwaltung
leichtgewichtiger,portablerund selbst-beschreibender (self-sufficient) Linux Container "jeder" Anwendung.
Was ist ein Container?Eine Umgebung mit
shared OS (linux running in linux),isolierten Prozessen,isoliertem Netzwerk und anderen Ressourcen sowiemit anderen Containern geteilten Bibliotheken/Binaries (fallsanwendbar)
Keine VM
Container vs VMAllgemeiner Überblick
Kleiner "Footprint"sehr kurze BootzeitBootprozesse
VM - Normaler BootprozessContainer - Kein Bootprozess
Unterstützte OSVM - fast alleContainer - Nur Linux mit Kernel >= 3.8
Container vs VMMultiple Instanzen und Änderungen
Leichtgewichtiger Start mehrere Instanzen des selben Images
Bei Änderungen muss nur das Delta zum Basisimagebereitgestellt werden.
Docker - BasicsImage
Template für ContainerGespeichert in einem RepositoryLokal oder RemoteDefiniert, normalerweise, nur das Deltagegenüber einem Basisimage
Container - laufendes Image
Bereitstellen eines ImagesInteractive
peter ~>docker run -i -t centos:6.4 /bin/bashbash-4.1# lsbin dev home lib64 mnt proc sbin srv tmp varboot etc lib media opt root selinux sys usrbash-4.1# rpm -Uvh http://..........bash-4.1# exitpeter ~>
Bereitstellen eines ImagesDockerfile
FROM centos:6.4
RUN rpm -Uvh http://download.fedoraproject.org/pub/ ....# Install Node.js and npmRUN yum install -y npm
# Bundle app sourceADD src /srcRUN cd /src; npm installEXPOSE 8080CMD ["node", "/src/index.js"]
Bereitstellen eines ImagesPacker
Generisches LXC provisioningUnterstützt nicht alle features einesDockerfile, bspw. exposed ports
Container InteraktionVolumen-Resourcen
sind spezielle Verzeichnisse
die zwischen Container geteilt werden könnenÄnderungen werden sofort durchgeführtsind vom Update eines Images nicht betroffenexistieren solange, wie mindestens ein Container sie benutzt.
Container InteraktionVolumen-Resourcen - Beispiel
Logfiles sollen an zentraler Stelle gesammelt werden
Container InteraktionVolumen-Resourcen - Beispiel
Logfiles sind in einem zentralen Log-Container verfügbar
Use casesTesting
separierte Testresourcenseparierte CI buildsCI build slave nodes on demand erzeugen
Continuous deploymentDeployment und Skalierung von web apps,Datenbanken und Backend servicesPaaSLokale separate Spielwiese
Warum Docker?DEV
build oncerun "everywhere"die exakt "gleiche" Umgebung für testing, staging und production ist möglich
OPS
Konfiguration der UmgebungKonfiguration der Verbindungenim Fehlerfall ist es möglich dem Entwickler die aktuelle Umgebung zu geben
Tools and CoBoot2Docker - minimales virtual machine image für DockerCoreOS - Linux distribution für verteilte Umgebungen mitDockerFig - Management von komplexen ScenariosSerf - Service - Lookup ToolingShipyard - UI um komplette Anwendungsetups mit Docker zuadministrieren
Recommended