Docker 101
AN OVERVIEW
what is docker?
why docker?
when docker?
development
operation
docker network
virtualization
Virtualization
- AWS EC2
- Google compute engine
- Azure virtual machine
- IBM virtual server
- alibaba ecs
- ….
Virtualization
Virtualization
Virtualization
Virtualization
Virtualization
Virtualization
Virtualization
For example:
Server:
- 1 TB storage
- 64 GB memory
4 virtual machine:
- 250 gb storage
- 16 GB MEMORY
Virtualization
Applications have used up resources or not?
Virtualization
Applications have used up resources or not?
Virtualization
Virtualization
Virtualization
Virtualization
Virtualization
Virtualization
Docker image
Docker image
● Docker hub
Docker registry
- Docker hub
- AWS EC2 container registry
- Google container registry
- ….
Dockerfile
● Dockerfile reference
Dockerfile
● Docker Basics for Amazon ECS
Why Docker?
Why docker?
- Increased Portability
- Don’t have to worry about environment
Why docker?
- Improve Scalability
- Vertical
- Horizontal
Why docker?
- Simple and fast deployment
- quickly create new containerized instances or rapidly destroy multiple containers
Why docker?
- Enhance Productivity
- promotes a rapid development environment
- simplify the installation process and decrease dependency errors
Why docker?
- Improve Security
- each application’s major process apart from one another in separate containers
When docker?
when docker
Dev & test & deploy
when docker
Stateless applications
NOTE*: docker does not save data
when docker
Stateless applications
- Microservice
when docker
Stateless applications:
- hybrid environment
when docker
Automated workflow
when docker
- How about stateful application?
when docker
- How about stateful application?
→ what is session data?
→ key: “value”
when docker
- How about stateful application?
→ Make Stateful became Stateless
when docker
- How about stateful application?
→ Make Stateful became Stateless
REDIS MEMCACHE
container Networking
● Docker Network
container Networking challenges
container Networking model
● Docker Reference Architecture
- network sandbox
- endpoint
- network drivers
container Networking model
- network sandbox
- endpoint
- network drivers
● sand box
container Networking model
- network sandbox
- endpoint
- network drivers
container Networking model
- Network:
- native driver
- remote
● Docker Reference Architecture
docker native networking drivers
- host
- bridge
- overlay
- MACVLAN
- none
● Understand docker networking drivers and use cases
docker native networking drivers
- host driver
→ interface on host can be used directly by the container
docker native networking drivers
- Bridge driver
→ layer 2 device
● creates a private network internal to
the host
● External access is granted by exposing
ports to containers
docker native networking drivers
- overlay driver
→ multi-host network
out of box
docker native networking drivers
- macvlan driver
→ MAC address based VLAN
docker native networking drivers
docker remote
→ Docker plugin
- Remote Networking Drivers
- IP Address Management (IPAM)
docker remote
docker remote
docker remote
IP Address Management
container management tools
- Docker swarm
- kubernetes
- jenkins
- datadog
- …
Docker compose
● Docker compose reference
Docker compose
● Docker compose getting started
docker swarm
● Docker swarm introduction
docker swarm
●
kubernetes
kubernetes
● kubernetes architecture
Summary
● What is Docker?
● Why Docker?
● When Docker?
● Development
● Operation
● Docker networking
Hand on
Hand on
● Scenario 1: Using dockerfile
● Scenario 2: Using Docker compose
● Scenario 3: Using docker swarm
● Scenario 4: Using kubernetes
References
● Dockerfile reference
● Docker Basics for Amazon ECS
● Docker compose reference
● Docker Network
● Docker Reference Architecture
● Understanding docker networking drivers and their use cases
● Why Containers Miss a Major Mark: Solving Persistent Data in Docker

Docker 101