Docker is an open source tool that allows developers to package applications into containers to deliver software quickly. It solves problems with slow innovation, inconsistent environments ("works on my machine"), and high support costs by allowing developers to build once and run anywhere. Docker uses containers as a lightweight alternative to virtual machines, allowing applications and their dependencies to run reliably and be isolated from other containers and the underlying infrastructure. Key benefits of Docker include accelerated development, consistency across environments, increased security, easy scaling, and quick remediation of issues.
8. WHAT IS DOCKER?
Open Source Project started in March 2013
From the makes of dotCloud (CaaS).
Huge Community
Linux based - LXC Interface / libcontainer
Shared resources with host system.
Own process space
9. WHAT IS DOCKER? (CONT.)
Own network interface
Can run stuff as root
Container = isolated processes
Docker doesn’t solve a lot of issues
Docker solves exactly one and brilliantly
Infrastructure
New way to manage Infrastructure
33. Docker Host
A physical or virtual machine that is running a
Docker daemon and contains cached images
as well as runnable containers created from
images
34. Docker Machine
A utility for managing multiple Docker hosts,
which can run locally in VirtualBox or
remotely in a cloud hosting service such as
Amazon Web Services, Microsoft Azure, or
Digital Ocean
35. Docker Images
A recipe or template for creating Docker
containers. It includes the steps for installing
and running the necessary software.
36. Docker Container
Like a tiny virtual machine that is created
from the instructions found within the Docker
image originated
37. Docker Registry
A repository of Docker images that can be
used to create Docker containers. Docker Hub
(https://hub.docker.com) is the most popular
social example of a Docker repository.
38. Docker Client
Command-line utility or other tool that takes
advantage of the Docker API
(https://docs.docker.com/reference/api/docker_remote_api)
to communicate with a Docker daemon
39. DOCKER MACHINE
Lets you create hosts on computers, cloud providers or
inside your own data center
Automate host creation, installation, and con guration
Manage multiple docker hosts
44. Docker Content Trust
Content Trust is a mechanism for users to
verify the integrity of Docker images. Before a
publisher pushes an image to a registry,
Docker Engine signs the image locally with the
publisher’s private key. When a user later pulls
this image, the Docker Engine can use the
publisher’s public key to verify that the image
has not been tampered with since created by
the publisher.
55. BEST PRACTICES
Containers should be ephemeral
Use a .dockerignore le
Avoid installing unnecessary packages
Run only one process per container
Minimize the number of layers
Sort multi-line arguments
Build cache
Beware of inheritance and dependencies
Limit container interaction
Monitor containers for vulnerabilities
Don’t pull images from untrusted repositories
56. TAKEAWAYS
Docker doesn’t:
Solve quality for you
Create good product ideas
Improve your software development process
Monitoring of containers can be hell – new products are
emerging
Docker creates:
Running distributed systems is hard, containers make it
a bit easier.
New ways to manage infrastructure
New ways to run applications in production