Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Docker Introduction Tech Talk

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Simon Kölsch Simon Kölsch
November 13, 2015

Docker Introduction Tech Talk

Docker Tech Talk for a customer

Avatar for Simon Kölsch

Simon Kölsch

November 13, 2015
Tweet

More Decks by Simon Kölsch

Other Decks in Technology

Transcript

  1. DevOps and Docker? > DevOps (some parts) > “Automate everything”

    > “Take responsibility” > Technical Problems > Complex services/apps and dependencies > Limited amount of hardware
  2. VM VM VM VM Virtualization Hardware Host OS/Kernel Virtual Hardware

    OS / Kernel App Hardware Host OS/Kernel Hypervisor VM App Mapped HV Hardware (OS / Kernel)
  3. Still… > Setting up whole virtual machines for applications is

    a lot of overhead > Applications have complex requirements, even with one technology stack > Running a distributed system locally can be an unpleasant experience
  4. Container > Docker is “Operating system-level virtualization” or a modern

    “chroot” ;-) Docker Linux Kernel Virtualization Features
 (cgroups, namespaces, etc.) libcontainer Container Container Container
  5. Docker Universe > Docker Engine > Docker Machine > Docker

    Compose > Docker Swarm > Docker Registry > Docker Hub
  6. Persistence > Data is not persisted by default > Container

    can define Volumes > Volumes can be mounted > Volumes can be shared > Volumes can have permissions
  7. Logging > Filesystem (Volume) > STDOUT > Logging Drivers >

    default: json-file > syslog, journald, gelf, fluentd, awslogs, …
  8. Networking > Containers are isolated via a bridge- interface >

    Configuration is done via docker > Host Stack can be used directly > Complex overlay networks are possible
  9. Creating Images FROM centos:centos6 RUN yum install -y epel-release RUN

    yum install -y nodejs npm COPY . /src RUN cd /src; npm install EXPOSE 8080 CMD ["node", "/src/index.js"] build/ :.. Dockerfile : src/
 :.. app $ docker build .
  10. Docker FS Layering FROM .. RUN .. RUN .. COPY

    .. RUN .. … 12ca0ae6c50d40589f280004 59015122974cd04812d5719 8e4ec5c3e63c9c50a1bdb0b9 62bd84c070ab552f1554acfc7 ae2007787fbfbffe206be67062
  11. so far… > Lightweight Containers > image creation via docker

    build > image distribution via registry > container creation via docker run > networking and logging configuration > manage persistence via volumes
  12. Best Practices > Use small images with few fs layers

    > Don’t mix applications inside containers > Configure your container > Use explicit versions and manage them > Maintain your ecosystem
  13. CoreOS Example Core OS Core OS Core OS Core OS

    Core OS Core OS Docker etcd fleet skydns Sidekicks
  14. Docker @ your Company > Adds great benefits but, …

    > simplifies stuff by adding complexity [!sic] > needs some security considerations > is actively developed > Does not immediately fix your project deadlines, replace your ops department or repair the coffee machine
  15. Alternatives / Outlook > App Container Spec > rkt >

    Open Container Initiative > ???
  16. Simon Kölsch | @simkoelsch [email protected] innoQ Deutschland GmbH Krischerstr. 100

    40789 Monheim am Rhein Germany Phone: +49 2173 3366-0 innoQ Schweiz GmbH Gewerbestr. 11 CH-6330 Cham Switzerland Phone: +41 41 743 0116 www.innoq.com Ohlauer Straße 43 10999 Berlin Germany Phone: +49 2173 3366-0 Robert-Bosch-Straße 7 64293 Darmstadt Germany Phone: +49 2173 3366-0 Radlkoferstraße 2 D-81373 München Germany Telefon +49 (0) 89 741185-270 Thank you! Questions? Comments?