SlideShare a Scribd company logo
Docker Overview
Rohit Jnagal, Docker Meetup, Bangalore
jnagal@
Containerizing everything @ Google
Containers at scale.
Resource Isolation.
lmctfy
libcontainer
Docker : What & Why
Machine or Application containers
Build Once, Configure Once.
Deploy Everything*
Everywhere*
Reliably & Consistently
Efficiently
Cheaply
Docker Features
Change
Management
Resource
Isolation
File system
Isolation
Network
Isolation
Image
Management
Sharing
Process
Management
Docker Components
Docker Grounds up: Resource Isolation
Cgroups : Isolation and accounting
● cpu
● memory
● block i/o
● devices
● network
● numa
● freezer
image credit: mairin
Docker Grounds up: Namespaces
● Process trees.
● Mounts.
● Network.
● User accounts.
● Hostnames.
● Inter-process
communication.
pid_t pid = clone(..., flags, ...)
CLONE_NEWUTS hostname, domainname
CLONE_NEWIPC IPC objects
CLONE_NEWPID Process IDs
CLONE_NEWNET Network configuration
CLONE_NEWNS File system mounts
CLONE_NEWUSER User and Group IDs
setns(int fd, int nstype)
CLONE_NEWIPC
CLONE_NEWNET
CLONE_NEWUTS
Also: unshare(flags)
Docker Grounds up: Add Security
● Linux Capabilities
○ Drops most capabilities.
○ Enable what a task needs.
● GRSEC and PAX
● SELinux
● AppArmor
image credit: Leo Reynolds
Docker Grounds up: Filesystem
File-system Isolation:
Building a rootfs dir and chroot into it.
With mount namespace, use pivot-root.
Features:
Layering, CoW, Caching, Diffing
Solutions:
UnionFS, Snapshotting FS, CoW block devices
Docker Grounds up: Filesystem
From: Jérôme Petazzoni
Docker Grounds up: Processes & Networking
We have resources, isolation, and file system management.
Docker daemon handles starting/stopping processes with:
Attach logic
Logs
TTY management
Docker run options
Events and container state
Network Management
NAT, Bridge, Veth
Expose
Links
Docker Grounds up: Images
Create and share images
Push, pull, commit images.
Registry (public, private) and index.
Dockerfiles
Orchestration:
Linking Containers
Multi-host linking
Dynamic discovery
image: jbarratt
Docker Codewalk
github.com/dotcloud/docker/
api : docker client and server api
daemon : Managing containers and images
engine: commands/jobs processing
graph: store for versioned filesystem images and their relationship.
registry: handling registry and repository.
links: Linking containers.
integration-cli: Integration tests.
docs: documentation.
pkg: collection of standalone utility packages that are not docker specific.
sdd -> Great place to start contributing.
Time for actual walkthrough...
Docker Codewalk : docker/daemon
Exec Driver Graph DriverNetwork Driver
Docker
Daemon
LXC Native AUFS BTRFS DevMapper
Docker Codewalk : pkg
github.com/dotcloud/docker/pkg
libcontainer: cgroup and namespaces. Uses lot of other utility packages.
nsinit binary.
apparmor, selinux, label : applying security profiles.
mount, signals : system utilities.
iptables, networkfs, netlink : network utilities.
term: terminal handling
systemd
Let’s look through some of these.
Thanks!
Rohit Jnagal
jnagal@google
@jnagal

More Related Content

PDF
Docker n co
PDF
Running Django on Docker: a workflow and code
PDF
AtlasCamp 2015: The age of orchestration: From Docker basics to cluster manag...
PDF
Ansible docker
PDF
Docker and Kubernetes 101 workshop
PDF
Docker internals
PDF
Endocode Kubernetes Meetup: Architecture Patterns for Microservices in Kubern...
PPTX
Docker-hanoi meetup #1: introduction about Docker
Docker n co
Running Django on Docker: a workflow and code
AtlasCamp 2015: The age of orchestration: From Docker basics to cluster manag...
Ansible docker
Docker and Kubernetes 101 workshop
Docker internals
Endocode Kubernetes Meetup: Architecture Patterns for Microservices in Kubern...
Docker-hanoi meetup #1: introduction about Docker

What's hot (20)

PDF
Continuous integration with Docker and Ansible
PDF
Docker Architecture (v1.3)
PDF
Docker at Djangocon 2013 | Talk by Ken Cochrane
PDF
Kubernetes Walk Through from Technical View
PDF
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
PDF
Kubernetes Node Deep Dive
PPTX
virtualization-vs-containerization-paas
PDF
DevOps in AWS with Kubernetes
PPTX
Monitoring, Logging and Tracing on Kubernetes
PDF
Docker Distributed application bundle & Stack - Overview
PDF
Docker serverless v1.0
PPTX
Scaling Docker Containers using Kubernetes and Azure Container Service
PDF
runC: The little engine that could (run Docker containers) by Docker Captain ...
PDF
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
PPTX
Docker and kubernetes
PPTX
Container & kubernetes
PDF
Kubernetes intro public - kubernetes meetup 4-21-2015
PDF
Using Docker with OpenStack - Hands On!
PDF
Demystifying kubernetes
PDF
Scaling Microservices with Kubernetes
Continuous integration with Docker and Ansible
Docker Architecture (v1.3)
Docker at Djangocon 2013 | Talk by Ken Cochrane
Kubernetes Walk Through from Technical View
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Node Deep Dive
virtualization-vs-containerization-paas
DevOps in AWS with Kubernetes
Monitoring, Logging and Tracing on Kubernetes
Docker Distributed application bundle & Stack - Overview
Docker serverless v1.0
Scaling Docker Containers using Kubernetes and Azure Container Service
runC: The little engine that could (run Docker containers) by Docker Captain ...
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Docker and kubernetes
Container & kubernetes
Kubernetes intro public - kubernetes meetup 4-21-2015
Using Docker with OpenStack - Hands On!
Demystifying kubernetes
Scaling Microservices with Kubernetes
Ad

Similar to Docker Overview (20)

PPTX
Docker 101 Checonf 2016
PPTX
Docker training
PPTX
Accelerate your development with Docker
PDF
Accelerate your software development with Docker
PDF
Docker, but what it is?
PPTX
Docker Ecosystem on Azure
PDF
Rooting Out Root: User namespaces in Docker
PPTX
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
PDF
Cloud Native Computing - Part III - Containers
PPTX
Powercoders · Docker · Fall 2021.pptx
PPTX
Develop with docker 2014 aug
PDF
Docker London: Container Security
PPTX
Hands on introduction to docker security for docker newbies
PDF
DockerCC.pdf
PDF
Dockers & kubernetes detailed - Beginners to Geek
PDF
The internals and the latest trends of container runtimes
PPTX
Docker Security
PDF
Practical Docker for OpenStack (Juno Summit - May 15th, 2014)
PDF
Docker Essentials Workshop— Innovation Labs July 2020
PDF
Docker for Developers
Docker 101 Checonf 2016
Docker training
Accelerate your development with Docker
Accelerate your software development with Docker
Docker, but what it is?
Docker Ecosystem on Azure
Rooting Out Root: User namespaces in Docker
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Cloud Native Computing - Part III - Containers
Powercoders · Docker · Fall 2021.pptx
Develop with docker 2014 aug
Docker London: Container Security
Hands on introduction to docker security for docker newbies
DockerCC.pdf
Dockers & kubernetes detailed - Beginners to Geek
The internals and the latest trends of container runtimes
Docker Security
Practical Docker for OpenStack (Juno Summit - May 15th, 2014)
Docker Essentials Workshop— Innovation Labs July 2020
Docker for Developers
Ad

Recently uploaded (20)

PDF
composite construction of structures.pdf
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
web development for engineering and engineering
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PPTX
MET 305 MODULE 1 KTU 2019 SCHEME 25.pptx
PPT
Mechanical Engineering MATERIALS Selection
PDF
ETO & MEO Certificate of Competency Questions and Answers
PPTX
Construction Project Organization Group 2.pptx
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
DOCX
573137875-Attendance-Management-System-original
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Lecture Notes Electrical Wiring System Components
composite construction of structures.pdf
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Operating System & Kernel Study Guide-1 - converted.pdf
CYBER-CRIMES AND SECURITY A guide to understanding
Internet of Things (IOT) - A guide to understanding
web development for engineering and engineering
bas. eng. economics group 4 presentation 1.pptx
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
Lesson 3_Tessellation.pptx finite Mathematics
MET 305 MODULE 1 KTU 2019 SCHEME 25.pptx
Mechanical Engineering MATERIALS Selection
ETO & MEO Certificate of Competency Questions and Answers
Construction Project Organization Group 2.pptx
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
UNIT-1 - COAL BASED THERMAL POWER PLANTS
573137875-Attendance-Management-System-original
OOP with Java - Java Introduction (Basics)
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Lecture Notes Electrical Wiring System Components

Docker Overview

  • 1. Docker Overview Rohit Jnagal, Docker Meetup, Bangalore
  • 2. jnagal@ Containerizing everything @ Google Containers at scale. Resource Isolation. lmctfy libcontainer
  • 3. Docker : What & Why Machine or Application containers Build Once, Configure Once. Deploy Everything* Everywhere* Reliably & Consistently Efficiently Cheaply
  • 6. Docker Grounds up: Resource Isolation Cgroups : Isolation and accounting ● cpu ● memory ● block i/o ● devices ● network ● numa ● freezer image credit: mairin
  • 7. Docker Grounds up: Namespaces ● Process trees. ● Mounts. ● Network. ● User accounts. ● Hostnames. ● Inter-process communication. pid_t pid = clone(..., flags, ...) CLONE_NEWUTS hostname, domainname CLONE_NEWIPC IPC objects CLONE_NEWPID Process IDs CLONE_NEWNET Network configuration CLONE_NEWNS File system mounts CLONE_NEWUSER User and Group IDs setns(int fd, int nstype) CLONE_NEWIPC CLONE_NEWNET CLONE_NEWUTS Also: unshare(flags)
  • 8. Docker Grounds up: Add Security ● Linux Capabilities ○ Drops most capabilities. ○ Enable what a task needs. ● GRSEC and PAX ● SELinux ● AppArmor image credit: Leo Reynolds
  • 9. Docker Grounds up: Filesystem File-system Isolation: Building a rootfs dir and chroot into it. With mount namespace, use pivot-root. Features: Layering, CoW, Caching, Diffing Solutions: UnionFS, Snapshotting FS, CoW block devices
  • 10. Docker Grounds up: Filesystem From: Jérôme Petazzoni
  • 11. Docker Grounds up: Processes & Networking We have resources, isolation, and file system management. Docker daemon handles starting/stopping processes with: Attach logic Logs TTY management Docker run options Events and container state Network Management NAT, Bridge, Veth Expose Links
  • 12. Docker Grounds up: Images Create and share images Push, pull, commit images. Registry (public, private) and index. Dockerfiles Orchestration: Linking Containers Multi-host linking Dynamic discovery image: jbarratt
  • 13. Docker Codewalk github.com/dotcloud/docker/ api : docker client and server api daemon : Managing containers and images engine: commands/jobs processing graph: store for versioned filesystem images and their relationship. registry: handling registry and repository. links: Linking containers. integration-cli: Integration tests. docs: documentation. pkg: collection of standalone utility packages that are not docker specific. sdd -> Great place to start contributing. Time for actual walkthrough...
  • 14. Docker Codewalk : docker/daemon Exec Driver Graph DriverNetwork Driver Docker Daemon LXC Native AUFS BTRFS DevMapper
  • 15. Docker Codewalk : pkg github.com/dotcloud/docker/pkg libcontainer: cgroup and namespaces. Uses lot of other utility packages. nsinit binary. apparmor, selinux, label : applying security profiles. mount, signals : system utilities. iptables, networkfs, netlink : network utilities. term: terminal handling systemd Let’s look through some of these.