Docker Deep Dive
@appasionatechie
• a.k.a Arati Kulkarni
• Devops Engineer @AppOrbit
• Docker Meetup Group Pune Co-organizer
• https://apassionatechie.wordpress.com/
History of Containers
Docker Architecture
Docker Components
Docker+Containerd
Containerd Roadmap
Docker Announcements
• Kubernetes + Swarm (Single Cluster and Management Pane) Docker EE (18.06)
• Supported Solution for Running Containers on Windows Server 2016 Docker EE (18.06)
• Secure Application Zone (Resource Set+RBAC+k8s namespace) Docker EE (18.06)
• Federated Application Management Across Multi-Cloud Environments Docker EE (18.06)
• Template-based workflows for Docker Desktop (Deploy containers on docker without learning it) Docker EE (18.06)
• Deploying and Benchmarking Open Source Serverless Frameworks Docker EE (18.06)
• Hybrid-OS Cluster (17.06)
• Enhanced RBAC (Custom Roles, Subject, Collections, Grant, RBAC for nodes) (17.06)
• Automated Image Promotion and Immutable Repos (17.06)
• Multi-stage builds (17.06)
• Moby project and LinuxKit (17.03)
• Docker MTA (17.03)
• Docker donates containerd to CNCF (17.03)
• Default storage driver changed from devicemapper to overlay2 and —experimental flag (1.13)
• Docker engine archived (docker CE/EE + Docker Datacenter) (1.13)
• Docker Swarm Mode (1.12)
• Docker for Mac/Windows (1.12)
• Docker Content Trust (1.8)
Docker Milestones
We need smaller docker images!
But, why?
How long does it take…
When you pull images?
When you build images?
When you cache images?
When you push images?
When you deploy containers?
Less is more!
But smaller images
are not always
better…
Optimising Our Images
• Choosing the right base image
• Managing files
• Managing the layers
• Cleaning up the images
• Architecting images
• Graphviz
• Microbadger
• Portainer
• Docker commands
The right questions
What can we exclude from the images?
Is there a better base image to use?
What can we avoid repeating?
Can we move complexity to/from build time?
Can we reduce layers in our Dockerfile?
Do what is right for
your application
• https://
www.katacoda.com/
courses/docker

• https://training.play-with-
docker.com/

• https://labs.play-with-
docker.com/

• https://blog.docker.com/

• https://blog.alexellis.io/

Docker deep dive

  • 1.
  • 2.
    @appasionatechie • a.k.a AratiKulkarni • Devops Engineer @AppOrbit • Docker Meetup Group Pune Co-organizer • https://apassionatechie.wordpress.com/
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
    Docker Announcements • Kubernetes+ Swarm (Single Cluster and Management Pane) Docker EE (18.06) • Supported Solution for Running Containers on Windows Server 2016 Docker EE (18.06) • Secure Application Zone (Resource Set+RBAC+k8s namespace) Docker EE (18.06) • Federated Application Management Across Multi-Cloud Environments Docker EE (18.06) • Template-based workflows for Docker Desktop (Deploy containers on docker without learning it) Docker EE (18.06) • Deploying and Benchmarking Open Source Serverless Frameworks Docker EE (18.06) • Hybrid-OS Cluster (17.06) • Enhanced RBAC (Custom Roles, Subject, Collections, Grant, RBAC for nodes) (17.06) • Automated Image Promotion and Immutable Repos (17.06) • Multi-stage builds (17.06) • Moby project and LinuxKit (17.03) • Docker MTA (17.03) • Docker donates containerd to CNCF (17.03) • Default storage driver changed from devicemapper to overlay2 and —experimental flag (1.13) • Docker engine archived (docker CE/EE + Docker Datacenter) (1.13) • Docker Swarm Mode (1.12) • Docker for Mac/Windows (1.12) • Docker Content Trust (1.8)
  • 9.
  • 10.
    We need smallerdocker images! But, why?
  • 11.
    How long doesit take… When you pull images? When you build images? When you cache images? When you push images? When you deploy containers?
  • 12.
    Less is more! Butsmaller images are not always better…
  • 13.
    Optimising Our Images •Choosing the right base image • Managing files • Managing the layers • Cleaning up the images • Architecting images
  • 14.
    • Graphviz • Microbadger •Portainer • Docker commands
  • 15.
    The right questions Whatcan we exclude from the images? Is there a better base image to use? What can we avoid repeating? Can we move complexity to/from build time? Can we reduce layers in our Dockerfile?
  • 16.
    Do what isright for your application
  • 17.
    • https:// www.katacoda.com/ courses/docker
 • https://training.play-with- docker.com/
 •https://labs.play-with- docker.com/
 • https://blog.docker.com/
 • https://blog.alexellis.io/