Container und ihre Eroberung der Welt

~ Ein praktischer Einstieg ~

 

 

 

 

Fabian Deutsch, Hackerspace Bremen, 1. Dez 2015

Container? Anwedungsvirtualisierung

  • Eine geschlossene und eigenständige Einheit
  • Eine Anwendung mit all ihren Abhängikeiten
  • Bereitstellung eines Dienstes, erledigen eines Tasks
  • Keinen eigenen Kernel
  • Keine eigenen Treiber

Wo sind denn diese Container?

devops devops devops devops

  • Development + Operations
  • Software schneller und in besserer Qualität bereitstellen
  • Continuous Delivery (Train)
  • Container: Eigenständige Einheit zu bauen, testen, und einzusetzen

Docker?

  • Das Container-Tool (Buildtool & Laufzeit)
  • De-Facto Standard
  • All-In-One: Erzeugen und Benutzen
  • Technik: Alter Hut
    • cgroups
    • Kernel namespaces
    • SELinux

systemd-nspawn

  • Weitere Container Laufzeit
  • Teil von systemd
  • Wird von CoreOS verwendet
  • Weitere Container Laufzeit
  • Verwendet bestehendes aus Docker

rkt

  • Das nächste heiße Ding
  • Von CoreOS

$ docker search fedora

  • Durchsucht "die Registry"
  • Listet verfügbare Images
  • Zusätzlich: Rating, Official, Automated

 

Images werden zum Instanziieren von Containern verwendet.

 

Docker Hub: https://hub.docker.com/

$ docker run -it docker.io/fedora:22

  • Erzeugt einen Container von einem Image
    • Falls nicht vorhanden: Download des Images
  • docker run -it [<registry>/]<image>[:<tag>]
  • Tag: Debian:latest, Debian:sid, Debian:stable, …
  • Jeder weitere run (oder create) verwendet das gleiche Image

$ docker run -v /some/content:/usr/share/nginx/html:ro -d nginx

$ docker pull docker.io/fedora:22

  • Download des Images

$ docker ps

  • Zeigt all laufenden Container
  • `-a` um alle vorhandenen Container zu sehen

$ docker kill

$ docker build .

  • Erzeugt ein Image aus einem Dockerfile
  • Ähnlich eines bash-Scriptes

Dockerfile

FROM docker.io/fedora:22

MAINTAINER "Fabian Deutsch" <fabiand@hackerspace-bremen.de>

ENV container docker

RUN dnf install -y python

ADD index.html /root/index.html

EXPOSE 8000

WORKDIR /root
ENTRYPOINT ["/usr/bin/python", "-m", "SimpleHTTPServer"]

Weiteres …

Beware of Super Privileged Containers (SPC)

  • root der Container-Welt
  • docker run --cap-add=ALL --privileged …
  • Lässt die sonst klaren Grenzen zwischen Container und Host verschwimmen
  • Geht stark zu lasten der Portabilität
    • SPC wird optiomiert für {Ubuntu, Debian,Fedora}

Platformen:

Docker
CoreOS
Atomic

Manage!

Mesos, Kubernetes, …

  • Mesos
    • Distributed Task Scheduler
    • Tasks in einem Cluster ausführen
  • Kubernetes
    • High-Level view auf Container
    • Container werden in PODs zusammengefasst
    • High-Availability, Overlay Networking, …

end-los …

fabiand@fedoraproject.org

dummdida.tumblr.com

@dummdida

 

CC Share-Alike

Made with Slides.com