docker.io @ CentOS 7
Secure And Portable
Containers Made Easy
Jürgen Brunk
Köln, 04.08.2014
docker.io 2
1.Was ist Docker ?
2.Was sind Container ?
3.Warum Docker ?
4.Architektur
5.Praxis
6.Docker unter CentOS 7 inst...
Was ist Docker ?
docker.io 4
Was ist Docker ?
Das Docker*
Framework erlaubt
es (Web-)
Applikationen in
schlanke, autarke
und portable
Umgeb...
Was sind
Container ?
docker.io 6
Was sind Container ?
Operating system–level virtualization:
z.B. jails, openvz, lxc, ...
Abgeschottete Teilmen...
docker.io 7
Container vs. VMs
Warum Docker ?
docker.io 9
Warum Docker? (The Matrix from Hell)
docker.io 10
Vorteile für DEV
Einmal gebaut – läuft überall !
Saubere, sichere, portable Laufzeitumgebung
für die Applicat...
docker.io 11
Vorteile für OPS
Einmal konfiguriert – läuft überall !
Keine Inkonsistenzen mehr zwischen Dev-,
QA-, Stage-, ...
docker.io 12
Warum es funktioniert (Trennung der Zuständigkeiten)
Entwickler:
Kümmert sich um das was
innerhalb des Contai...
ArchitekturArchitektur
docker.io 14
Architektur
docker.io 15
schlank
Docker basiert auf Linux Containern
Minimaler Overhead (cpu/io/network)
Verwendet layered Filesystem*...
docker.io 16
portabel
Läuft auf jedem System das LXC unterstützt
Ubuntu, Debian, RHEL, CentOS, Fedora,
Gentoo, Google Clou...
docker.io 17
autark
Ein Docker Container enthält alles nötige:
● Minimal Base OS (kein Kernel)
● Libraries / Frameworks
● ...
docker.io 18
Docker Basics
Fragen soweit ?
Praxis
docker.io 21
Praxis
Wir
bauen
uns
Docker
Container
Docker unter
CentOS 7 installieren
docker.io 23
Docker unter CentOS 7 installieren
# EPEL Repo einbinden *)
# rpm -Uvh
http://dl.fedoraproject.org/pub/epel/b...
Ein einfaches „Hello
World“ Beispiel
docker.io 25
Ein einfaches „Hello World“ Beispiel
# ein fertiges Image aus dem Docker Index ziehen
$ sudo docker pull ubun...
Grundlegende
Docker Befehle
docker.io 27
Grundlegende Docker Befehle
docker search <TERM>
docker start | stop | kill | restart <CID>
docker ps [-a|-s]...
Dockerfile
docker.io 29
Dockerfile
# sshd
#
# VERSION 0.0.1
FROM ubuntu
MAINTAINER Thatcher R. Peskens "thatcher@dotcloud.com"
# make...
docker.io 30
Container aus dem Dockerfile bauen
# Dockerfile erzeugen (Inhalt siehe letzte Folie)
$ vi Dockerfile
# Docker...
docker.io 31
SSH Connect in den Container
# Container auflisten
$ sudo docker ps --no-trunc=true
CONTAINER ID IMAGE
COMMAN...
Noch Fragen ?
Quellennachweise
und Links
docker.io 34
Quellennachweise
Quellennachweise:
www.docker.io
Images:
www.docker.io
www.jundiai.com.br
ruhrnachrichten.de
...
docker.io 35
Links
Links:
Docker Website:
http://www.docker.io/
CoreOS:
http://coreos.com/
Lightweight Linux for Docker:
h...
36
Vielen Dank für Ihre Aufmerksamkeit
Kontakt
Jürgen Brunk
Systems Engineer
inovex GmbH
Office München
Valentin-Linhof St...
Nächste SlideShare
Wird geladen in …5
×

docker.io @ CentOS 7 - Secure And Portable Containers Made Easy

1.228 Aufrufe

Veröffentlicht am

The speaker Jürgen Brunks works for inovex GmbH as a senior linux systems engineer and designs, optimises and deploys highly scalable, automated linux environments for customers. For over 20 years he has been professionally with Unix/Linux and open source and could through numerous projects gained extensive practical experience. His duties include the design, construction and operation of systems. His focus is here in the Automation and Virtualization of highly available and highly scalable infrastructures.

Veröffentlicht in: Ingenieurwesen
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.228
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
97
Aktionen
Geteilt
0
Downloads
8
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

docker.io @ CentOS 7 - Secure And Portable Containers Made Easy

  1. 1. docker.io @ CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln, 04.08.2014
  2. 2. docker.io 2 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 Agenda
  3. 3. Was ist Docker ?
  4. 4. docker.io 4 Was ist Docker ? Das Docker* Framework erlaubt es (Web-) Applikationen in schlanke, autarke und portable Umgebungen, sog. Container, zu verpacken *) engl. Hafenarbeiter
  5. 5. Was sind Container ?
  6. 6. docker.io 6 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“
  7. 7. docker.io 7 Container vs. VMs
  8. 8. Warum Docker ?
  9. 9. docker.io 9 Warum Docker? (The Matrix from Hell)
  10. 10. docker.io 10 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
  11. 11. docker.io 11 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
  12. 12. docker.io 12 Warum es funktioniert (Trennung der Zuständigkeiten) Entwickler: Kümmert sich um das was innerhalb des Containers ist: ● sein Code / Daten ● seine Libs / Frameworks ● sein Package Manager Alle Linux Server sehen gleich aus Admin: Kümmert sich um das was ausserhalb des Containers ist: ● Logging / Backup ● Remote Access ● Network Config Alle Container starten und stoppen gleich
  13. 13. ArchitekturArchitektur
  14. 14. docker.io 14 Architektur
  15. 15. docker.io 15 schlank Docker basiert auf Linux Containern Minimaler Overhead (cpu/io/network) Verwendet layered Filesystem* *) aufs btrfs devicemapper
  16. 16. docker.io 16 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*
  17. 17. docker.io 17 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
  18. 18. docker.io 18 Docker Basics
  19. 19. Fragen soweit ?
  20. 20. Praxis
  21. 21. docker.io 21 Praxis Wir bauen uns Docker Container
  22. 22. Docker unter CentOS 7 installieren
  23. 23. docker.io 23 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
  24. 24. Ein einfaches „Hello World“ Beispiel
  25. 25. docker.io 25 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“
  26. 26. Grundlegende Docker Befehle
  27. 27. docker.io 27 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
  28. 28. Dockerfile
  29. 29. docker.io 29 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
  30. 30. docker.io 30 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
  31. 31. docker.io 31 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
  32. 32. Noch Fragen ?
  33. 33. Quellennachweise und Links
  34. 34. docker.io 34 Quellennachweise Quellennachweise: www.docker.io Images: www.docker.io www.jundiai.com.br ruhrnachrichten.de gist.github.com/simota/9043141 slides.com/stevenborrelli/docker
  35. 35. docker.io 35 Links Links: Docker Website: http://www.docker.io/ CoreOS: http://coreos.com/ Lightweight Linux for Docker: http://boot2docker.io/ Packer: http://www.packer.io/
  36. 36. 36 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

×