This document discusses Docker and provides an introduction and overview for getting started with Docker. It begins with discussing the challenges of managing complex software stacks across different environments and how Docker addresses this through containerization and separation of concerns. It then covers downloading and installing Docker, basic Docker commands like run, images, ps, and explains a "Hello World" example. Finally, it demonstrates building a simple Whalesay image and running MySQL and WordPress in linked Docker containers using both the Docker CLI and Docker Compose.
15. Docker Container
Static website Web frontendUser DB Queue Analytics DB
Development
VM
QA server
Public Cloud
Contributor’s
laptop
Production
Cluster
Customer
Data Center
17. Virtual
Machines
• Hardware VM’s been
around a long time
• Allows multiple guest
systems to live on a
single host
• Snapshots “freeze”
state at that point
• Can be migrated
from one host to
another
18. VM
Problems
• Ship too many bits
• Each VM contained
independent OS and
resource pool
• Scale may not be of
value
19. Innovation
• Created opportunity to
cut out unnecessary
features to create
lightweight process
virtualization
• lead to creation of
LXC containers. (Linux
Containers)
• Much smaller OS with
minimal resource
requirements that
boots in seconds
20.
21. VM vs Container
Hypervisor (Type 2)
Host OS
Server
Guest
OS
Bins/Lib
s
Docker
VM
Container
App 1
Guest
OS
Bins/Lib
s
App 1
Guest
OS
Bins/Lib
s
App 2
Host OS
Server
App1
App1
App1
App2
App2
App2
App2
Bins/Libs Bins/Libs
22. Enter
Docker
• Removing of the
unnecessary parts of
OS continued
• 2013 DotCloud (now
Docker) really
pushed the
boundaries of
lightweight process
virtualization
23. Enter
Docker
• A Docker container
unlike VM's or LXC
does not require or
include a separate
OS
• Docker instead relies
on the Linux kernel
functionality and
uses resource
27. Commands
COMMANDS
ps = Process
images = images on
host
run = run a command
rm = Remove Process
rmi = remove image
FLAGS
-a = All Hidden
-d = detached mode
-ti = Terminal
Interactive
-p = Port number
-v = Volume