docker.io @ CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln, 04.08.2014



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

The linux container engine. Peter Daum

Continuous Delivery mit Docker

Katello / Pulp / Candlepin

Free IPA (Identity Policy - Audit)

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

Anwendungsvirtualisierung in Containern mit Docker

Docker. Lass mal containern Julian mino GPN

Docker. Grundlagen SaarCamp 2016 Nico Maas

Installation Linux agorum core Version 6.4.5

Netbeans 6.1 mit SVN Server unter Debian etch mit Windows Clients

Fernwartung von Mac OS 9 u. X per VNC

Docker. Grundlagen Workshop Trier Tech Talk Conference, Nico Maas

TimeMachine. Installation und Konfiguration. Version 1.4. Stand Dokument: installcentos.odt

Benutzer und Rechte Teil 1

Installation Linux agorum core Version 6.4.8

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

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

Embedded So)ware. Einrichten der Arbeitsumgebung

Personal. Installations-Anleitung.

X2Go Remote Desktop - Einsatzszenarien für Privatanwender

Continuous Delivery in der Praxis

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

TSM-Client unter RedHat/CentOS-Linux einrichten

Anleitung: DV4Mini auf einem Raspberry Pi

SFTP SCP - Synology Wiki

WinVetpro im Betriebsmodus Laptop

Brownbag Session Grundlagen Virtualisierung Von VM s und Containern

ALLNET Banana Pi. Print Server mit AirPrint Funktion

Unternehmen-IT sicher in der Public Cloud

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

Reporting Services und SharePoint 2010 Teil 1

KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE

Agenda. Ziel Problematik OS-Installation Softwareverteilung Inventarisierung Stufenplan

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

Windows Server 2012 RC2 konfigurieren

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.

Docker für Java Entwickler

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

Benutzer und Rechte Teil 1, Paketverwaltung, SSH

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

Nutzung der VDI Umgebung

Lernjournal Auftrag 1

DISTRIBUTION / MARKETING

2008 Linke, Walter IAV4 1

Installation der SAS Foundation Software auf Windows

Continuous Delivery in der Praxis

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

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

Installation und Aktualisierung der VMware-Tools

Samba Linux-Kurs der Unix-AG

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

ICT-Cloud.com XenApp 6.5 Configuration Teil 2

Anleitung zum Prüfen von WebDAV

Open Source Virtualisation

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

Personal. Installations-Anleitung.

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

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

Systemvoraussetzungen Stand

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

Virtual Desktop Infrasstructure - VDI

Softwareinstallation unter Linux

INSTALLATIONSANLEITUNG der Version 2.1 (Jänner 2014)

Serverprovisioning in einer dynamischen Infrastruktur Systemmanagement LinuxTag 2012

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

Lokale Installation von DotNetNuke 4 ohne IIS

Print2CAD 2017, 8th Generation. Netzwerkversionen

Vom Umgang mit Containern in der Informatik

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

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

Advolux Konsolen- und Unattended-Installation

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

VPNs mit OpenVPN. von Michael Hartmann netz.de>

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

APEX OOS TOOLS & HELFER

Blogbeitrag: Installation eines SAP CRM-Systems

Dr. Roland Huß, ConSol* Docker für Java-Entwickler

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

Installationsanweisung editit

Build-Pipeline mit Jenkins

OpenScape Office MX V2 Applikationen

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

Build. Ship. Run. Docker. Namics.

Kernel Based Virtual Machine

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

Damit die Installation klappt, muss Linux zuvor mit einer Minimalinstallation installiert worden sein!

Continuous Delivery in der Realität eines Großunternehmens

Quickstep Server Update

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

Installation Microsoft Lync 2010 auf Linux

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

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

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

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

Update Messerli MySQL auf Linux

Transkript:

docker.io @ CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln, 04.08.2014

Agenda 1. Was ist Docker? 2. Was sind Container? 3. Warum Docker? 4. Architektur 5. Praxis 6. Docker unter CentOS 7 installieren 7. Ein einfaches Hello World Beispiel 8. Grundlegende Docker Befehle 9. Dockerfile docker.io 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 docker.io 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 docker.io 6

Container vs. VMs docker.io 7

Warum Docker?

Warum Docker? (The Matrix from Hell) docker.io 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 docker.io 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 docker.io 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 docker.io 12

Architektur

Architektur docker.io 14

schlank Docker basiert auf Linux Containern Minimaler Overhead (cpu/io/network) Verwendet layered Filesystem* *) aufs btrfs devicemapper docker.io 15

portabel Läuft auf jedem System das LXC unterstützt Ubuntu, Debian, RHEL, CentOS, Fedora, Gentoo, Google Cloud, Rackspace Cloud, Amazon EC2, IBM Softlayer, Arch Linux, FrugalWare, Fedora, opensuse, CRUX Linux, CoreOS,... Microsoft Windows*, Apple OSX*, Raspberry PI* docker.io 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 docker.io 17

Docker Basics docker.io 18

Fragen soweit?

Praxis

Praxis Wir bauen uns Docker Container docker.io 21

Docker unter CentOS 7 installieren

Docker unter CentOS 7 installieren # EPEL Repo einbinden *) # rpm -Uvh http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0. 2.noarch.rpm # yum clean all && yum makecache # Docker installieren # yum install docker-io # 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 docker.io 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 docker.io 25

Grundlegende Docker Befehle

Grundlegende Docker Befehle docker search <TERM> docker start stop kill restart <CID> docker ps [-a -s] docker images docker pull <IMAGE>[:TAG] docker run [-i] <IMAGE> [<CMD>] docker build <PATH> <URL> - docker rm [-f] <CID> docker rmi [-f] <IMAGE> docker save <IMAGE> docker load docker.io 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 docker.io 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 CREATED VIRTUAL SIZE img_sshd latest 9b8cbe62ff21 2 minutes ago 313.6 MB # neuen Container aus Image erzeugen und als Daemon starten $ sudo docker run -d -P --name ct_sshd img_sshd d25a3b457f1164abc0ab29c30581be3ac7b5594290ceece772bf0f4309c2 28f8 docker.io 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 docker.io 31

Noch Fragen?

Quellennachweise und Links

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

Links Links: Docker Website: http://www.docker.io/ CoreOS: http://coreos.com/ Lightweight Linux for Docker: http://boot2docker.io/ Packer: http://www.packer.io/ docker.io 35

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 36