Introduction To Docker: Alexander González
Introduction To Docker: Alexander González
Section 2: Section 4:
App A App A
D o c ke r I m a g e D o c ke r Container
E xa m p l e : U b u ntu with N od e. j s a n d C re a t e d b y u s i n g a n i m a ge . R u n s
A p p l i ca ti o n C o d e you r applicati on.
Docker containers are NOT VMs
• Easy connection to make
• Fundamentally different architectures
• Fundamentally different benefits
7
Docker Containers Versus Virtual Machines
App 1 App 2
B i n s / L i bs B i n s / L i bs
App 1 App 2
Gu est O S Gu est O S
Bins/Libs Bins/Libs
Hyp e r v i s o r D o c ke r E n g i n e
Ho st O p e rati n g Sy s te m Ho st O p e rati n g Sy s te m
10
Some Docker vocabulary
Docker Image
The basis of a Docker container. Represents a full application
Docker Container
The standard unit in which the application service resides and executes
Docker Engine
Creates, ships and runs Docker containers deployable on a physical or
virtual, host locally, in a datacenter or cloud service provider
$ docker image ls
$ docker container run –d –p 5000:5000 –-name node node:latest
$ docker container ps
$ docker --help
Dockerfile – Linux Example
• Instructions on
how to build a
Docker image
• Important to
optimize your
Dockerfile
14
Section 2:
Anatomy of a Docker Container
Docker Volumes
Volume Use Cases
Let’s Go Back to Our Dockerfile
15
Each Dockerfile Command Creates a Layer
…
EXPOSE
COPY
WORKDIR
RUN
FROM
Kernel
16
Docker Image Pull: Pulls Layers
17
Docker Volumes
• Volumes mount a directory on the host into the container at a specific location
18
Why Use Volumes
• Mount local source code into a running container
• Improve performance
− As directory structures get complicated traversing the tree can slow system
performance
• Data persistence
19
Section 3:
Networking
What is Docker Bridge Networking
Docker host Docker host
21
Docker Bridge Networking and Port Mapping
Docker host 1
Host port Container port
Cntnr1
10.0.0.8 :80
$ docker container run -p 8080:80 ...
Bridge
172.14.3.55 :8080
22
Section 4:
Docker Compose
Docker Compose: Multi Container Applications
• Build and run one container at a time • Define multi container app in compose.yml file
• Manually connect containers together • Single command to deploy entire app
• Must be careful with dependencies and start • Handles container dependencies
up order • Works with Docker Swarm, Networking,
Volumes, Universal Control Plane
49
Docker Compose: Multi Container Applications