docker.io Secure And Portable Containers Made Easy Jürgen Brunk München, 30.04.2014



Ähnliche Dokumente
CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln,

Continuous Delivery mit Docker

The linux container engine. Peter Daum

X2Go Remote Desktop - Einsatzszenarien für Privatanwender

Free IPA (Identity Policy - Audit)

Installation Linux agorum core Version 6.4.5

Anwendungsvirtualisierung in Containern mit Docker

Katello / Pulp / Candlepin

Docker. Lass mal containern Julian mino GPN

Installation Linux agorum core Version 6.4.8

Docker. Softwaretest, Testautomatisierung und -management. Nico Maas. Grundlagen. Saar 2017

Fernwartung von Mac OS 9 u. X per VNC

Netbeans 6.1 mit SVN Server unter Debian etch mit Windows Clients

Docker. Grundlagen SaarCamp 2016 Nico Maas

SFTP SCP - Synology Wiki

Tanuki Service Wrapper 101. JVM Verwaltung mit der Community Edition. Alexander Pacnik Karlsruhe,

Druckereinrichtung unter Ubuntu LTS mit Keyring

Embedded So)ware. Einrichten der Arbeitsumgebung

Anleitung: DV4Mini auf einem Raspberry Pi

Docker. Grundlagen Workshop Trier Tech Talk Conference, Nico Maas

Reporting Services und SharePoint 2010 Teil 1

Installationsleitfaden für Secure Private Network für Linux ClearPath- Netzwerke

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim,

Brownbag Session Grundlagen Virtualisierung Von VM s und Containern

WinVetpro im Betriebsmodus Laptop

ALLNET Banana Pi. Print Server mit AirPrint Funktion

Open Source Virtualisation

KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE

Unternehmen-IT sicher in der Public Cloud

Geschrieben von: Stefan Sonntag, den 26. Juni 2011 um 09:45 Uhr - Aktualisiert Sonntag, den 26. Juni 2011 um 10:12 Uhr

Continuous Delivery in der Praxis

Agenda. Ziel Problematik OS-Installation Softwareverteilung Inventarisierung Stufenplan

Lernjournal Auftrag 1

Windows Server 2012 RC2 konfigurieren

Benutzer und Rechte Teil 1

Nutzung der VDI Umgebung

Dockerbank Container-basiertes Deployment von biomedizinischen IT-Lösungen

2008 Linke, Walter IAV4 1

Vom Umgang mit Containern in der Informatik

Personal. Installations-Anleitung.

Installation der SAS Foundation Software auf Windows

Continuous Delivery in der Realität eines Großunternehmens

Benutzer und Rechte Teil 1, Paketverwaltung, SSH

Tools are a IT-Pro's Best Friend Diverse Tools, die Ihnen helfen zu verstehen, was auf dem System passiert oder das Leben sonst erleichtern.

Installationsanleitung. Installieren Sie an PC1 CESIO-Ladedaten einschl. dem Firebird Datenbankserver, wie in der Anleitung beschrieben.

Betriebswirtschaftliche Standardsoftware - Made for the WEB. ESS Enterprise Solution Server. Installation. Release 6.

Scharl 2010 Dokument ist Urheberrechtlich geschützt. Port Forwarding via PuTTY und SSH. Was ist Port forwarding?

VPNs mit OpenVPN. von Michael Hartmann netz.de>

DISTRIBUTION / MARKETING

PlaceCam 3. Die Videokonferenzsoftware für Windows und Mac OS X. Jürgen Völkel Vertrieb daviko GmbH

Torsten Flatter inovex GmbH. "Git.NET" gibt's nicht?

Samba Linux-Kurs der Unix-AG

ICT-Cloud.com XenApp 6.5 Configuration Teil 2

Anleitung zum Prüfen von WebDAV

Build-Pipeline mit Jenkins

Update / Inbetriebnahme domovea Server. Update/Inbetriebnahme domovea Server Technische Änderungen vorbehalten

OS IDE Webserver Integration des Webservers in die IDE Wireshark Webserver II Dynamisches Webprojekt in Eclipse

Build. Ship. Run. Docker. Namics.

Installationsanweisung editit

Blogbeitrag: Installation eines SAP CRM-Systems

Kernel Based Virtual Machine

Thema: Microsoft Project online Welche Version benötigen Sie?

Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD

Systemvoraussetzungen Stand

Umbenennen eines NetWorker 7.x Servers (UNIX/ Linux)

Virtual Desktop Infrasstructure - VDI

Eprog Starthilfe. 5. Oktober Einleitung 2

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Lokale Installation von DotNetNuke 4 ohne IIS

INSTALLATIONSANLEITUNG der Version 2.1 (Jänner 2014)

Print2CAD 2017, 8th Generation. Netzwerkversionen

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

DK Doku.de. Neu VM. (Specials Documentation von: DK Doku.de, )

Advolux Konsolen- und Unattended-Installation

Kurzanleitung zu XML2DB

Apollo Überblick. Klaus Kurz. Manager Business Development Adobe Systems Incorporated. All Rights Reserved.

4,5 eink-display für den Raspberry Pi - Bedienungsanleitung

Docker für Java Entwickler

Benutzerinformation zum IP-Update: Wie aktualisiere ich meine IP-Adresse? Datenstand: / Version 1.0

HyperV und vnext - ein aktueller Blick auf den Stand der Technologie. Dipl.-Inf. Frank Friebe

Konzept zur Push Notification/GCM für das LP System (vormals BDS System)

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Installation Microsoft Lync 2010 auf Linux

Serverprovisioning in einer dynamischen Infrastruktur Systemmanagement LinuxTag 2012

IBM SPSS Statistics Version 22. Installationsanweisungen für Mac OS (Lizenz für gleichzeitig angemeldete Benutzer)

Installation und Aktualisierung der VMware-Tools

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

APEX OOS TOOLS & HELFER

Update Messerli MySQL auf Linux

Administration von großen Ubuntu Linux Desktop Umgebungen mit Univention Corporate Client

Universität Leipzig - Softwaretechnik Praktikum 2014/2015 Installationsanleitung zum Projekt: Ein kartenbasiertes Multiplayer -Spiel

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Version 0.3. Installation von MinGW und Eclipse CDT

Linux im Studium. Serbest Hammade / Resh, Christian Sturm. Do, 15. November 2012

Transkript:

Secure And Portable Containers Made Easy Jürgen Brunk München, 30.04.2014

Agenda 1. Was ist Docker? 2. Was sind Container? 3. Warum Docker? 4. Architektur 5. Praxis 6. Docker unter Ubuntu installieren 7. Ein einfaches Hello World Beispiel 8. Grundlegende Docker Befehle 9. Dockerfile 10.Container & Images transferieren 2

Was ist Docker?

Was ist Docker? Das Docker* Framework erlaubt es (Web-) Applikationen in schlanke, autarke und portable Umgebungen, sog. Container, zu verpacken *) engl. Hafenarbeiter 4

Was sind Container?

Was sind Container? Operating system level virtualization: z.b. jails, openvz, lxc,... Abgeschottete Teilmenge des Hostsystems (getrennter Process-, Netzwerk-, I/O-Raum) Quasi chroot on Steroids 6

Container vs. VMs 7

Warum Docker?

Warum Docker? (The Matrix from Hell) 9

Vorteile für DEV Einmal gebaut läuft überall! Saubere, sichere, portable Laufzeitumgebung für die Application Kein Problem mit Dependencies, Paketen etc. während des Deployments Jede Application ist ein isolierter Container mit ggf. unterschiedlichen SW-Versionen 10

Vorteile für OPS Einmal konfiguriert läuft überall! Keine Inkonsistenzen mehr zwischen Dev-, QA-, Stage-, Prod-Umgebung Schnelleres Deployment (continuous deployment / continuous integration) Schlanke Container bessere Performance als VM's 11

Warum es funktioniert (Trennung der Zuständigkeiten) Entwickler: Admin: Kümmert sich um das was innerhalb des Containers ist: Kümmert sich um das was ausserhalb des Containers ist: sein Code / Daten Logging / Backup seine Libs / Frameworks Remote Access sein Package Manager Network Config Alle Linux Server sehen gleich aus Alle Container starten und stoppen gleich 12

Architektur Architektur

Architektur 14

schlank Docker* basiert auf Linux Containern LXC* Minimaler Overhead (cpu/io/network) Verwendet layered Filesystem *) Due to a bug in LXC, Docker works best on the 3.8 kernel 15

portabel Läuft auf jedem System das LXC unterstützt Ubuntu, Debian*, RHEL, Gentoo, Google Cloud, Rackspace Cloud, Amazon EC2, IBM Softlayer, Arch Linux, FrugalWare, Fedora, opensuse, CRUX Linux Microsoft Windows*, Apple OSX*, Raspberry PI* 16

autark Ein Docker Container enthält alles nötige: Minimal Base OS (kein Kernel) Libraries / Frameworks Application Code + Data Ein Container kann überall da laufen wo auch Docker installiert werden kann 17

Docker Basics 18

Fragen soweit?

Praxis

Praxis Wir bauen uns Docker Container 21

Docker unter Ubuntu installieren

Docker unter Ubuntu installieren # Docker unter Ubuntu 13.xx / 14.04 LTS installieren $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 \ --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 $ sudo sh -c "echo deb http://get./ubuntu docker main \ > /etc/apt/sources.list.d/docker.list" $ sudo apt-get update $ sudo apt-get install -y lxc-docker # Docker Installation prüfen $ sudo docker info $ sudo docker version # Docker Verzeichnis hier liegt alles $ sudo ls -l /var/lib/docker/ # Docker Usage anzeigen lassen $ sudo docker 23

Ein einfaches Hello World Beispiel

Ein einfaches Hello World Beispiel # ein fertiges Image aus dem Docker Index ziehen $ sudo docker pull ubuntu # alle lokalen Images auflisten $ sudo docker images # einen Container erzeugen, Applikation # /bin/echo laufen lassen und am Ende den # Container wieder entfernen $ sudo docker run --rm ubuntu \ /bin/echo Hello World 25

Grundlegende Docker Befehle

Grundlegende Docker Befehle docker search <TERM> docker start stop kill restart <CID> docker ps [-a] docker images docker pull <IMAGE>[:TAG] docker run [-i] <IMAGE> [<CMD>] docker build <PATH> <URL> docker rm <CID> docker rmi <IMAGE> docker save <IMAGE> docker load 27

Dockerfile

Dockerfile # sshd # # VERSION 0.0.1 FROM ubuntu MAINTAINER Thatcher R. Peskens "thatcher@dotcloud.com" # make sure the package repository is up to date RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list RUN apt-get update RUN apt-get install -y openssh-server RUN mkdir /var/run/sshd RUN echo 'root:screencast' chpasswd EXPOSE 22 CMD /usr/sbin/sshd -D 29

Container aus dem Dockerfile bauen # Dockerfile erzeugen (Inhalt siehe letzte Folie) $ vi Dockerfile # Docker Image bauen, temporäre Zwischenbuilds am Ende verwerfen $ sudo docker build --rm -t img_sshd. # lokale Docker Images auflisten $ sudo docker images REPOSITORY TAG IMAGE ID VIRTUAL SIZE img_sshd latest 9b8cbe62ff21 313.6 MB CREATED 2 minutes ago # neuen Container aus Image erzeugen und als Daemon starten $ sudo docker run -d -P --name ct_sshd img_sshd d25a3b457f1164abc0ab29c30581be3ac7b5594290ceece772bf0f4309c2 28f8 30

SSH Connect in den Container # Container auflisten $ sudo docker ps --no-trunc=true CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d25a3b457f1164abc0ab29c30581be3ac7b5594290ceece772bf0f4309c2 28f8 img_sshd:latest /bin/sh -c '/usr/sbin/sshd -D' 4 minutes ago Up 3 minutes 0.0.0.0:49153->22/tcp ct_sshd # Container Host Port Mapping finden $ sudo docker port ct_sshd 22 0.0.0.0:49153 # SSH Connect via local Port forwarding (passwd = screencast ) $ ssh -lroot -p49153 localhost # SSH Connect via Container IP $ sudo docker inspect ct_sshd grep IPAddress 31

Container & Images transferieren

Container & Images transferieren Docker Images: $ sudo docker save img_sshd > save.tar $ scp save.tar Dockerfile newhost: newhost:$ sudo docker load < save.tar newhost:$ sudo docker run -d -P --name ct_sshd img_sshd Docker Containers: $ sudo docker export ct_sshd > export.tar $ scp export.tar Dockerfile newhost: newhost:$ cat export.tar sudo docker import - \ img_newsshd newhost:$ sudo docker run -d -P --name ct_newsshd \ img_newsshd 33

Noch Fragen?

Quellennachweise und Links

Quellennachweise Quellennachweise: www. Images: www. www.jundiai.com.br ruhrnachrichten.de gist.github.com/simota/9043141 slides.com/stevenborrelli/docker 36

Links Links: Docker Website: http://www./ Docker Dokumentation: http://docs./ Docker Command Line Reference: http://docs./reference/commandline/cli/ Lightweight Linux for Docker: http://boot2/ 37

Vielen Dank für Ihre Aufmerksamkeit Kontakt Jürgen Brunk Systems Engineer inovex GmbH Office München Valentin-Linhof Str. 2 D-81829 München Mobil: 0173 3181 003 Mail: juergen.brunk@inovex.de 38