SlideShare a Scribd company logo
1 of 109
Download to read offline
Docker Hong Kong Meetup (Jul 2017)
Introduction to Docker
Clarence Ho
Independent Software Engineer
Docker HK Meetup Co-organizer
@HoClarence
ho.clarence@gmail.com
3
Topics
• Introduction to Docker
• Latest Features of Docker
• Docker Adoption
• Docker Editions
• Demo
• Open Discussion
What is Docker?
Introduction to Docker
5
A brief explanation of Containers
An image is a lightweight, stand-alone, executable package that includes
everything needed to run a piece of software
• Contains the application executable and their dependencies
• Built with instructions from a Dockerfile
A container is a runtime instance of an image – what the image becomes
in memory when actually executed
• Run apps natively on the host machine’s kernel
• Running in a discrete process (isolated environment)
• Containers on the same machine share a single kernel
6
Containers vs Virtual Machine
Virtual Machine Diagram Container Diagram
7
Container vs VM - Performance Benchmark
(Just for reference)
On a modest Intel server (16GB Ram)
• 536 Linux Containers
• 37 KVM Virtual Machines
Reference: https://insights.ubuntu.com/2015/06/11/how-many-containers-can-you-run-on-your-machine/
8
Virtualization
9
Containerization
10
Benefits of Containers
• More efficient in resource utilization
− The same computing resources can run more containers than VMs
− Containers organically consume the resources they need (bound by the
maximum value assigned). For VM, it will take up all the resources
assigned when startup
• Better for cloud deployment (Microservices and Devops)
− It’s a general practice to have separate images for difference components
for the same application (e.g. DB, App Server, Web Server)
− More easy to deploy/upgrade/scale an individual component, without
impacting others
Latest Features of Docker
(Content based on Dockercon 2017)
12
Latest Features of Docker
• Versioning and Release Schedule
• Builder
• Runtime
• Swarm Mode
• Compose
Version and Release Schedule
Latest Features of Docker
14
New Versioning
15
New Release Schedule
Builder
Latest Features of Docker
17
Multi-Stage Builds
Traditional Dockerfile that includes build tools:
➜ Target is to reduce the size of Docker image
FROM alpine
RUN apk add make g++
ADD . /src
RUN cd /src && make
EXPOSE 80
ENTRYPOINT /usr/local/bin/app
18
Multi-Stage Builds
A Dockerfile that use multi-stage build:
➮ Final image will not include the build tools and libraries
FROM alpine AS build-env
RUN apk add make g++
ADD . /src
RUN cd /src && make
FROM busybox
COPY --from=build-env /src/build/app /usr/local/bin/app
EXPOSE 80
ENTRYPOINT /usr/local/bin/app
Runtime
Latest Features of Docker
20
Data Management Commands
• docker system df
➜ docker system sub-command added
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 5 1 2.777 GB 2.647 GB (95%)
Containers 1 1 0 B 0B
Local Volumes 4 1 3.207 GB 2.261 GB (70%)
• docker system prune
• docker container/image/network/volume prune
Demo
22
Docker Playground
• Play with Docker
− http://labs.play-with-docker.com
• Github
− https://github.com/play-with-docker/play-with-docker
Swarm Mode
Introduction to Service Orchestration
24
Introduction to Service Orchestration
• Management
− Need a manager to maintain the cluster state, and serve requests for
container management (schedule/stop/scale up/scale down)
• Security
− All nodes within the cluster should be able to communicate securely
• Service Discovery
− Need to be able to identify and locate a container service by using DNS
• Load Balancing
− Need to be able to scale up/down containers with auto load balancing
• Networking
− Able to segregate the network for different scenarios
• Update/Rollback
− Support update and rollback of container services across the cluster
⌘ Container Services need Orchestration
25
Docker’s answer to Service Orchestration
Docker Swarm mode
26
Docker Swarm Mode
Security - All managers and nodes communicates via TLS
27
Docker Swarm Mode
Load Balancing - Ingress Routing Mesh
28
Docker’s answer to Service Orchestration
Load Balancing - External Load Balancer
29
Docker’s answer to Service Orchestration
Load Balancing - Service to Service Communication
30
Introduction to Service Orchestration
• A DNS server was embedded in a Swarm cluster
• Swarm mode has an internal DNS component that
automatically assigns each service in the swarm a DNS
entry
• The swarm manager uses internal load balancing to
distribute requests among services within the cluster based
upon the DNS name of the service
Service Discovery with DNS
Swarm Mode
Latest Features of Docker
32
Service Rollback on Failure
“rollback” action added to --update-failure-action
(in addition to “pause” and “continue”)
with all the associated flags
--rollback-delay
--rollback-failure-action
--rollback-max-failure-ratio
--rollback-monitor
--rollback-parallelism
swarm mode improvement
33
Topology Aware Scheduling
docker service create --replicas=6 postgres
docker service create --replicas=2 webapp
swarm mode improvement
34
Topology Aware Scheduling
docker service create --replicas=6 --placement-pref-add=rack postgres
docker service create --replicas=2 --placement-pref-add=rack webapp
swarm mode improvement
docker node update --label-add rack SFO-1 docker node update --label-add rack SFO-2
35
Service Logs
swarm mode improvement
$ docker service create --replicas 2 --name redis redis
$ docker service logs redis
redis.2.najk8sq1klac@node2 | _.-``__ ''-._
redis.2.najk8sq1klac@node2 | _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit
redis.1.lfkijq3fx3q8@node1 | _.-``__ ''-._
redis.2.najk8sq1klac@node2 | .-`` .-```. ```/ _.,_ ''-._
redis.1.lfkijq3fx3q8@node1 | _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit
redis.2.najk8sq1klac@node2 | ( ' , .-` | `, ) Running in standalone mode
redis.1.lfkijq3fx3q8@node1 | .-`` .-```. ```/ _.,_ ''-._
redis.2.najk8sq1klac@node2 | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
redis.1.lfkijq3fx3q8@node1 | ( ' , .-` | `, ) Running in standalone mode
redis.2.najk8sq1klac@node2 | | `-._ `._ / _.-' | PID: 1
redis.1.lfkijq3fx3q8@node1 | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
redis.2.najk8sq1klac@node2 | `-._ `-._ `-./ _.-' _.-'
redis.1.lfkijq3fx3q8@node1 | | `-._ `._ / _.-' | PID: 1
...
Swarm Mode -
Secrets Management
Latest Features of Docker
37
Securely Distributing Passwords
● Service often require sensitive information (like passwords, keys, etc.)
● Need a way to securely distribute such information across the cluster
38
Securely Distributing Passwords
The Old Way
Pass as environment:
$ docker service create -e password=TOTALLYSECURE dockercon
Password is stored on host and mount by container as volume:
$ docker service create -v some/host/dir:/password dockercon
39
Securely Distributing Passwords
The Old Way > Pass as environment > Problem
A developer need to debug the service, and the environment is dump into a debug log file.
40
Securely Distributing Passwords
The Old Way > Save Secret in Volume > Problem
Volume must exist on every node that service needs to run on.
When service is rescheduled, secret stay on the host!
41
Docker Secrets
Secrets are stored in the Raft Store
The Raft log is encrypted and secure
42
Docker Secrets
Secrets are stored in the Raft Store
The encryption key of the Raft log can be further encrypted for added security
$ docker swarm update --autolock=true
43
Docker Secrets
Create a new secret
$ docker secret create my-password password.file
44
Docker Secrets
Upon creation, secret shared across managers via the Raft Store
45
Docker Secrets
Update service to use the secret
$ docker service update --secret-add=my-password Dockercon
46
Docker Secrets
Secret only sent to nodes running the service
Stored in tmpfs mounted into the container
47
Docker Secrets
Node failure
Service instance need to be rescheduled
48
Docker Secrets
Secret moves with the service
Dead worker node does not have secret
49
Docker Secrets
Secrets are new first-class objects
The right way is also the easy way
Docker Compose
Latest Features of Docker
51
Compose to Swarm
It is now possible to deploy services using compose files directly from docker
➜ docker stack sub-command added
● docker stack deploy --compose-file docker-compose.yml <my_stack>
● docker stack list
● docker stack rm <my_stack>
52
Compose Format Version 3
Main differences from v2 are:
docker-compose.yml improvements
● Removed the non-portable options
○ build
○ volume-from
○ …
● Added Swarm specific options
○ replicas
○ mode
○ ...
53
Long Syntax for Ports
docker-compose.yml improvement
ports:
- 3000
- 3000-3005
- 49100:22
- 9090-9091:8080-8081
- 127.0.0.1:8001:8001
- 127.0.0.1:5005-5010:5005-5010
- 6060:7060/udp
Old Format (for port publishing):
54
Long Syntax for Ports
docker-compose.yml improvement
ports:
- target: 6060
published: 7060
protocol: udp
New Format (for port publishing):
55
Long Syntax for Volumes
docker-compose.yml improvement
volumes:
- /var/lib/mysql
- /opt/data:/var/lib/mysql
- ./cache:/tmp/cache
- datavolume:/var/lib/mysql
- ~/configs:/etc/configs/:ro
Old Format (for volume mounting):
56
Long Syntax for Volumes
docker-compose.yml improvement
volumes:
- type: bind
source: ~/configs
target: /etc/configs
read_only: true
New Format (for volume mounting):
Docker Adoption
(Content based on Dockercon 2017)
58
What a Difference 3 Years Makes
Docker in Enterprise
Docker Adoption
60
Docker in in the Enterprise
Docker on Windows
Docker Adoption
62
Docker on Windows Server 2016
● Now 98% of enterprise workloads supported by Docker
● Proven benefits of Docker on Linux available to Windows Server
developers and IT Pros
● One Docker platform and one adoption journey for all enterprise
applications and infrastructure
● Docker CS Engine with Windows Server 2016 at no additional cost
63
Docker on Windows Server 2016
Docker EE is free and support by Microsoft directly
64
Windows and Hyper V Containers
65
Windows vs Linux Containers (Docker Store)
Oracle in Docker Store
Docker Adoption
67
Oracle on Docker Store
68
Oracle Database Enterprise Edition
Available as Docker image
Free for development and testing
Modernizing Traditional
Applications
Docker Adoption
70
Legacy to Containerized App
The proper way
71
I Want to Escape from VM ASAP, what to do?
A faster way ⇨ Image2Docker
72
Sample Use Case
2 applications (1 Linux, 1 Windows) running on VM
73
Sample Use Case
2 applications (1 Linux, 1 Windows) running on VM
74
Sample Use Case
2 applications (1 Linux, 1 Windows) running on VM
75
Sample Use Case
Steps:
76
Image2Docker - Linux
make prepare
make build
make builtin-prep
sudo bin/v2c-darwin64 build -n img.vmdk
https://github.com/docker/communitytools-image2docker-linux
77
Image2Docker - Windows
Install-Module Image2Docker
Import-Module Image2Docker
ConvertTo-Dockerfile `
-ImagePath c:iis.vhd `
-OutputPath c:i2d2iis `
-Artifact IIS
https://github.com/docker/communitytools-image2docker-win
78
Create a Hybrid Swarm
79
Deployment
Docker Editions
(Content based on Dockercon 2017)
Community and Enterprise
Editions
Docker Editions
82
Enterprise and Community Editions
83
Docker Enterprise Edition (EE)
CaaS enabled platform for the modern software supply chain
84
Docker Enterprise Edition (EE)
Docker EE Components
85
Docker Enterprise Edition (EE)
Docker EE Architecture
86
Docker Enterprise Edition (EE)
Docker EE Plans
● Basic
● Standard
● Advanced
87
Docker Enterprise Edition (EE)
Image - Promotion Branching
88
Docker Enterprise Edition (EE)
Image - Scanning
89
Docker Enterprise Edition (EE)
Image - Scanning Result (UCP)
90
Docker Enterprise Edition (EE)
Mixed Windows/Linux Cluster
Docker for Various Platforms
Docker Editions
92
Docker CE and EE
Supported Platforms
93
Docker for various Platforms
Example : Docker for AWS
94
Docker for various Platforms
Example : Docker for Google Cloud (GCP)
Docker Cloud
Docker Editions
96
Docker Cloud
• Manage Build and Images
− Provides a hosted registry service
− Link to your source code repository
• Swarm Mode (Beta)
− Provision swarms or register existing swarms to popular cloud providers
− Support multiple providers in a single user interface
− Use your Docker ID to authenticate and securely access personal or team
swarms
• Standard Mode
− Link to your hosts, upgrade the Docker Cloud agent, and manage
container distribution
− Deploy and manage nodes, services, and applications in Docker Cloud
• Pricing
− Contact Docker
97
Docker Cloud
Docker Cloud provisions Docker CE Editions
98
Docker Cloud
Provision Swarms for multiple cloud providers
99
Docker Cloud
Swarm management
100
Docker Cloud vs Enterprise Edition
Feature Docker EE Docker Cloud
Docker Engine Version Docker EE Docker CE, Docker EE (Basic)
Private Image Registry Your own registry Host by Docker
User Interface Docker UCP
(Universal Control Plane)
Docker Cloud UI
Image Security Scan Support Support
User Security Create your own user/group,
Role based access control
Docker ID
Docker Datacenter Included (Standard, Advance) Not included
Automated Development Pipelines Included Not included
Private Cloud Full Support Partially Support (Bring your own Swarm)
Pricing Visit Docker site Contact Docker
✦ Contact Docker for latest information
Service Orchestration
(Alternatives)
Docker Editions
102
Container Service Orchestration Platform
Alternatives
• Public Cloud Providers
− Amazon EC2 Container Service
− Google Container Engine (based on Kubernetes)
• Redhat Openshift
− Redhat Enterprise Linux, Docker, Kubernetes
• CoreOS
− Container Linux, Quay Container Registry, Tectonic Kubernetes
• Apache Mesos
− DC/OS (Datacenter Operating System)
• IBM, HPE, Oracle, etc.
Demo
104
Docker Playground
• Play with Docker
− http://labs.play-with-docker.com
• Github
− https://github.com/play-with-docker/play-with-docker
105
Sample Application
• Github
− https://github.com/clarenceh/docker-contact
Final Words
107
Let’s Keep the Meetup Running
• Let’s work together to keep the meetup active
• Speakers WANTED
• Share with each other about your Docker journey
• Reach out for venues for deep dive
− Workshops
− The best way to learn is to do some real stuff
• Containerize your application
• Setup a Docker Swarm cluster
• Use Docker Compose to deploy your stack
Hey, I need HELP!!!
Open Discussions
THANK YOU

More Related Content

What's hot

Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)Rama Krishna B
 
Microservices using relocatable Docker containers
Microservices using relocatable Docker containersMicroservices using relocatable Docker containers
Microservices using relocatable Docker containersMauricio Garavaglia
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux ContainerBalaji Rajan
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionHao Fan
 
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep DiveDocker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep DiveDocker, Inc.
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to dockerInstruqt
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Jonas Rosland
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresDocker, Inc.
 
Intro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conferenceIntro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conferenceMano Marks
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelinesDevOps.com
 
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...dotCloud
 
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16 What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16 Docker, Inc.
 
Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker, Inc.
 
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and moreAll Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and moreAll Things Open
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker, Inc.
 

What's hot (20)

Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)Docker and containers : Disrupting the virtual machine(VM)
Docker and containers : Disrupting the virtual machine(VM)
 
Microservices using relocatable Docker containers
Microservices using relocatable Docker containersMicroservices using relocatable Docker containers
Microservices using relocatable Docker containers
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Learning Docker with Thomas
Learning Docker with ThomasLearning Docker with Thomas
Learning Docker with Thomas
 
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep DiveDocker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
 
The Docker Ecosystem
The Docker EcosystemThe Docker Ecosystem
The Docker Ecosystem
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
 
Intro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conferenceIntro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conference
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelines
 
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
Deploying containers and managing them on multiple Docker hosts, Docker Meetu...
 
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16 What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16
 
Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker Meetup 08 03-2016
Docker Meetup 08 03-2016
 
Introduction to container based virtualization with docker
Introduction to container based virtualization with dockerIntroduction to container based virtualization with docker
Introduction to container based virtualization with docker
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Docker basics
Docker basicsDocker basics
Docker basics
 
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and moreAll Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker Slides
 

Viewers also liked

Docker Security - Continuous Container Security
Docker Security - Continuous Container SecurityDocker Security - Continuous Container Security
Docker Security - Continuous Container SecurityDieter Reuter
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
LinuxKit and Moby, news from DockerCon 2017 - Austin,TX
LinuxKit and Moby, news from DockerCon 2017 - Austin,TXLinuxKit and Moby, news from DockerCon 2017 - Austin,TX
LinuxKit and Moby, news from DockerCon 2017 - Austin,TXDieter Reuter
 
Tracxn Research - Docker Ecosystem Report, May 2017
Tracxn Research - Docker Ecosystem Report, May 2017Tracxn Research - Docker Ecosystem Report, May 2017
Tracxn Research - Docker Ecosystem Report, May 2017Tracxn
 
Why Docker? Dayton PHP, April 2017
Why Docker? Dayton PHP, April 2017Why Docker? Dayton PHP, April 2017
Why Docker? Dayton PHP, April 2017Chris Tankersley
 
DockerCon 2017: Docker in China
DockerCon 2017: Docker in ChinaDockerCon 2017: Docker in China
DockerCon 2017: Docker in ChinaZhimin Tang
 
DSD-INT 2017 Docker, Compute as a Service (CaaS) and beyond - Van Gils
DSD-INT 2017 Docker, Compute as a Service (CaaS) and beyond - Van GilsDSD-INT 2017 Docker, Compute as a Service (CaaS) and beyond - Van Gils
DSD-INT 2017 Docker, Compute as a Service (CaaS) and beyond - Van GilsDeltares
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?Adam Štipák
 
Docker Federal Summit 2017 General Session
Docker Federal Summit 2017 General SessionDocker Federal Summit 2017 General Session
Docker Federal Summit 2017 General SessionDocker, Inc.
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectPatrick Chanezon
 
Moby Summit introduction
Moby Summit introductionMoby Summit introduction
Moby Summit introductionMoby Project
 
Online Meetup: Intro to LinuxKit
Online Meetup: Intro to LinuxKitOnline Meetup: Intro to LinuxKit
Online Meetup: Intro to LinuxKitDocker, Inc.
 
Bucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime PerformanceBucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime PerformancePhil Estes
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017Docker, Inc.
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance AnalysisBrendan Gregg
 

Viewers also liked (17)

Docker Security - Continuous Container Security
Docker Security - Continuous Container SecurityDocker Security - Continuous Container Security
Docker Security - Continuous Container Security
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
LinuxKit and Moby, news from DockerCon 2017 - Austin,TX
LinuxKit and Moby, news from DockerCon 2017 - Austin,TXLinuxKit and Moby, news from DockerCon 2017 - Austin,TX
LinuxKit and Moby, news from DockerCon 2017 - Austin,TX
 
Tracxn Research - Docker Ecosystem Report, May 2017
Tracxn Research - Docker Ecosystem Report, May 2017Tracxn Research - Docker Ecosystem Report, May 2017
Tracxn Research - Docker Ecosystem Report, May 2017
 
Why Docker? Dayton PHP, April 2017
Why Docker? Dayton PHP, April 2017Why Docker? Dayton PHP, April 2017
Why Docker? Dayton PHP, April 2017
 
DockerCon 2017: Docker in China
DockerCon 2017: Docker in ChinaDockerCon 2017: Docker in China
DockerCon 2017: Docker in China
 
DSD-INT 2017 Docker, Compute as a Service (CaaS) and beyond - Van Gils
DSD-INT 2017 Docker, Compute as a Service (CaaS) and beyond - Van GilsDSD-INT 2017 Docker, Compute as a Service (CaaS) and beyond - Van Gils
DSD-INT 2017 Docker, Compute as a Service (CaaS) and beyond - Van Gils
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?
 
Docker Federal Summit 2017 General Session
Docker Federal Summit 2017 General SessionDocker Federal Summit 2017 General Session
Docker Federal Summit 2017 General Session
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
DockerCon EU 2017 Recap
DockerCon EU 2017 RecapDockerCon EU 2017 Recap
DockerCon EU 2017 Recap
 
Moby Summit introduction
Moby Summit introductionMoby Summit introduction
Moby Summit introduction
 
Online Meetup: Intro to LinuxKit
Online Meetup: Intro to LinuxKitOnline Meetup: Intro to LinuxKit
Online Meetup: Intro to LinuxKit
 
Bucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime PerformanceBucketbench: Benchmarking Container Runtime Performance
Bucketbench: Benchmarking Container Runtime Performance
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
 

Similar to Docker HK Meetup - 201707

Docker 1.11 Presentation
Docker 1.11 PresentationDocker 1.11 Presentation
Docker 1.11 PresentationSreenivas Makam
 
Online Meetup: What's new in docker 1.13.0
Online Meetup: What's new in docker 1.13.0 Online Meetup: What's new in docker 1.13.0
Online Meetup: What's new in docker 1.13.0 Docker, Inc.
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataInfluxData
 
Introduction of Docker and Docker Compose
Introduction of Docker and Docker ComposeIntroduction of Docker and Docker Compose
Introduction of Docker and Docker ComposeDr. Ketan Parmar
 
The age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementThe age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementNicola Paolucci
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionBen Hall
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Developmentmsyukor
 
Docker 進階實務班
Docker 進階實務班Docker 進階實務班
Docker 進階實務班Philip Zheng
 
Docker in a JS Developer’s Life
Docker in a JS Developer’s LifeDocker in a JS Developer’s Life
Docker in a JS Developer’s LifeGlobalLogic Ukraine
 
廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班Paul Chao
 
Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0Jakub Hajek
 
Docker Container Security
Docker Container SecurityDocker Container Security
Docker Container SecuritySuraj Khetani
 
Docker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmDocker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmMario IC
 
Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxIgnacioTamayo2
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM France Lab
 
Docker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesDocker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesSreenivas Makam
 
Intro docker and demo monitor on docker
Intro docker and demo monitor on dockerIntro docker and demo monitor on docker
Intro docker and demo monitor on dockerWatcharin Yang-Ngam
 

Similar to Docker HK Meetup - 201707 (20)

Docker 1.11 Presentation
Docker 1.11 PresentationDocker 1.11 Presentation
Docker 1.11 Presentation
 
Online Meetup: What's new in docker 1.13.0
Online Meetup: What's new in docker 1.13.0 Online Meetup: What's new in docker 1.13.0
Online Meetup: What's new in docker 1.13.0
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxData
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
 
DockerCC.pdf
DockerCC.pdfDockerCC.pdf
DockerCC.pdf
 
Docker
DockerDocker
Docker
 
Introduction of Docker and Docker Compose
Introduction of Docker and Docker ComposeIntroduction of Docker and Docker Compose
Introduction of Docker and Docker Compose
 
The age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementThe age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster management
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Development
 
Docker 進階實務班
Docker 進階實務班Docker 進階實務班
Docker 進階實務班
 
Docker in a JS Developer’s Life
Docker in a JS Developer’s LifeDocker in a JS Developer’s Life
Docker in a JS Developer’s Life
 
廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班
 
Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0
 
Docker Container Security
Docker Container SecurityDocker Container Security
Docker Container Security
 
Docker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmDocker Compose to Production with Docker Swarm
Docker Compose to Production with Docker Swarm
 
Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptx
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
 
Docker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesDocker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting Techniques
 
Intro docker and demo monitor on docker
Intro docker and demo monitor on dockerIntro docker and demo monitor on docker
Intro docker and demo monitor on docker
 

Recently uploaded

What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Docker HK Meetup - 201707

  • 1. Docker Hong Kong Meetup (Jul 2017) Introduction to Docker
  • 2. Clarence Ho Independent Software Engineer Docker HK Meetup Co-organizer @HoClarence ho.clarence@gmail.com
  • 3. 3 Topics • Introduction to Docker • Latest Features of Docker • Docker Adoption • Docker Editions • Demo • Open Discussion
  • 5. 5 A brief explanation of Containers An image is a lightweight, stand-alone, executable package that includes everything needed to run a piece of software • Contains the application executable and their dependencies • Built with instructions from a Dockerfile A container is a runtime instance of an image – what the image becomes in memory when actually executed • Run apps natively on the host machine’s kernel • Running in a discrete process (isolated environment) • Containers on the same machine share a single kernel
  • 6. 6 Containers vs Virtual Machine Virtual Machine Diagram Container Diagram
  • 7. 7 Container vs VM - Performance Benchmark (Just for reference) On a modest Intel server (16GB Ram) • 536 Linux Containers • 37 KVM Virtual Machines Reference: https://insights.ubuntu.com/2015/06/11/how-many-containers-can-you-run-on-your-machine/
  • 10. 10 Benefits of Containers • More efficient in resource utilization − The same computing resources can run more containers than VMs − Containers organically consume the resources they need (bound by the maximum value assigned). For VM, it will take up all the resources assigned when startup • Better for cloud deployment (Microservices and Devops) − It’s a general practice to have separate images for difference components for the same application (e.g. DB, App Server, Web Server) − More easy to deploy/upgrade/scale an individual component, without impacting others
  • 11. Latest Features of Docker (Content based on Dockercon 2017)
  • 12. 12 Latest Features of Docker • Versioning and Release Schedule • Builder • Runtime • Swarm Mode • Compose
  • 13. Version and Release Schedule Latest Features of Docker
  • 17. 17 Multi-Stage Builds Traditional Dockerfile that includes build tools: ➜ Target is to reduce the size of Docker image FROM alpine RUN apk add make g++ ADD . /src RUN cd /src && make EXPOSE 80 ENTRYPOINT /usr/local/bin/app
  • 18. 18 Multi-Stage Builds A Dockerfile that use multi-stage build: ➮ Final image will not include the build tools and libraries FROM alpine AS build-env RUN apk add make g++ ADD . /src RUN cd /src && make FROM busybox COPY --from=build-env /src/build/app /usr/local/bin/app EXPOSE 80 ENTRYPOINT /usr/local/bin/app
  • 20. 20 Data Management Commands • docker system df ➜ docker system sub-command added $ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 5 1 2.777 GB 2.647 GB (95%) Containers 1 1 0 B 0B Local Volumes 4 1 3.207 GB 2.261 GB (70%) • docker system prune • docker container/image/network/volume prune
  • 21. Demo
  • 22. 22 Docker Playground • Play with Docker − http://labs.play-with-docker.com • Github − https://github.com/play-with-docker/play-with-docker
  • 23. Swarm Mode Introduction to Service Orchestration
  • 24. 24 Introduction to Service Orchestration • Management − Need a manager to maintain the cluster state, and serve requests for container management (schedule/stop/scale up/scale down) • Security − All nodes within the cluster should be able to communicate securely • Service Discovery − Need to be able to identify and locate a container service by using DNS • Load Balancing − Need to be able to scale up/down containers with auto load balancing • Networking − Able to segregate the network for different scenarios • Update/Rollback − Support update and rollback of container services across the cluster ⌘ Container Services need Orchestration
  • 25. 25 Docker’s answer to Service Orchestration Docker Swarm mode
  • 26. 26 Docker Swarm Mode Security - All managers and nodes communicates via TLS
  • 27. 27 Docker Swarm Mode Load Balancing - Ingress Routing Mesh
  • 28. 28 Docker’s answer to Service Orchestration Load Balancing - External Load Balancer
  • 29. 29 Docker’s answer to Service Orchestration Load Balancing - Service to Service Communication
  • 30. 30 Introduction to Service Orchestration • A DNS server was embedded in a Swarm cluster • Swarm mode has an internal DNS component that automatically assigns each service in the swarm a DNS entry • The swarm manager uses internal load balancing to distribute requests among services within the cluster based upon the DNS name of the service Service Discovery with DNS
  • 32. 32 Service Rollback on Failure “rollback” action added to --update-failure-action (in addition to “pause” and “continue”) with all the associated flags --rollback-delay --rollback-failure-action --rollback-max-failure-ratio --rollback-monitor --rollback-parallelism swarm mode improvement
  • 33. 33 Topology Aware Scheduling docker service create --replicas=6 postgres docker service create --replicas=2 webapp swarm mode improvement
  • 34. 34 Topology Aware Scheduling docker service create --replicas=6 --placement-pref-add=rack postgres docker service create --replicas=2 --placement-pref-add=rack webapp swarm mode improvement docker node update --label-add rack SFO-1 docker node update --label-add rack SFO-2
  • 35. 35 Service Logs swarm mode improvement $ docker service create --replicas 2 --name redis redis $ docker service logs redis redis.2.najk8sq1klac@node2 | _.-``__ ''-._ redis.2.najk8sq1klac@node2 | _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit redis.1.lfkijq3fx3q8@node1 | _.-``__ ''-._ redis.2.najk8sq1klac@node2 | .-`` .-```. ```/ _.,_ ''-._ redis.1.lfkijq3fx3q8@node1 | _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit redis.2.najk8sq1klac@node2 | ( ' , .-` | `, ) Running in standalone mode redis.1.lfkijq3fx3q8@node1 | .-`` .-```. ```/ _.,_ ''-._ redis.2.najk8sq1klac@node2 | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 redis.1.lfkijq3fx3q8@node1 | ( ' , .-` | `, ) Running in standalone mode redis.2.najk8sq1klac@node2 | | `-._ `._ / _.-' | PID: 1 redis.1.lfkijq3fx3q8@node1 | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 redis.2.najk8sq1klac@node2 | `-._ `-._ `-./ _.-' _.-' redis.1.lfkijq3fx3q8@node1 | | `-._ `._ / _.-' | PID: 1 ...
  • 36. Swarm Mode - Secrets Management Latest Features of Docker
  • 37. 37 Securely Distributing Passwords ● Service often require sensitive information (like passwords, keys, etc.) ● Need a way to securely distribute such information across the cluster
  • 38. 38 Securely Distributing Passwords The Old Way Pass as environment: $ docker service create -e password=TOTALLYSECURE dockercon Password is stored on host and mount by container as volume: $ docker service create -v some/host/dir:/password dockercon
  • 39. 39 Securely Distributing Passwords The Old Way > Pass as environment > Problem A developer need to debug the service, and the environment is dump into a debug log file.
  • 40. 40 Securely Distributing Passwords The Old Way > Save Secret in Volume > Problem Volume must exist on every node that service needs to run on. When service is rescheduled, secret stay on the host!
  • 41. 41 Docker Secrets Secrets are stored in the Raft Store The Raft log is encrypted and secure
  • 42. 42 Docker Secrets Secrets are stored in the Raft Store The encryption key of the Raft log can be further encrypted for added security $ docker swarm update --autolock=true
  • 43. 43 Docker Secrets Create a new secret $ docker secret create my-password password.file
  • 44. 44 Docker Secrets Upon creation, secret shared across managers via the Raft Store
  • 45. 45 Docker Secrets Update service to use the secret $ docker service update --secret-add=my-password Dockercon
  • 46. 46 Docker Secrets Secret only sent to nodes running the service Stored in tmpfs mounted into the container
  • 47. 47 Docker Secrets Node failure Service instance need to be rescheduled
  • 48. 48 Docker Secrets Secret moves with the service Dead worker node does not have secret
  • 49. 49 Docker Secrets Secrets are new first-class objects The right way is also the easy way
  • 51. 51 Compose to Swarm It is now possible to deploy services using compose files directly from docker ➜ docker stack sub-command added ● docker stack deploy --compose-file docker-compose.yml <my_stack> ● docker stack list ● docker stack rm <my_stack>
  • 52. 52 Compose Format Version 3 Main differences from v2 are: docker-compose.yml improvements ● Removed the non-portable options ○ build ○ volume-from ○ … ● Added Swarm specific options ○ replicas ○ mode ○ ...
  • 53. 53 Long Syntax for Ports docker-compose.yml improvement ports: - 3000 - 3000-3005 - 49100:22 - 9090-9091:8080-8081 - 127.0.0.1:8001:8001 - 127.0.0.1:5005-5010:5005-5010 - 6060:7060/udp Old Format (for port publishing):
  • 54. 54 Long Syntax for Ports docker-compose.yml improvement ports: - target: 6060 published: 7060 protocol: udp New Format (for port publishing):
  • 55. 55 Long Syntax for Volumes docker-compose.yml improvement volumes: - /var/lib/mysql - /opt/data:/var/lib/mysql - ./cache:/tmp/cache - datavolume:/var/lib/mysql - ~/configs:/etc/configs/:ro Old Format (for volume mounting):
  • 56. 56 Long Syntax for Volumes docker-compose.yml improvement volumes: - type: bind source: ~/configs target: /etc/configs read_only: true New Format (for volume mounting):
  • 57. Docker Adoption (Content based on Dockercon 2017)
  • 58. 58 What a Difference 3 Years Makes
  • 60. 60 Docker in in the Enterprise
  • 62. 62 Docker on Windows Server 2016 ● Now 98% of enterprise workloads supported by Docker ● Proven benefits of Docker on Linux available to Windows Server developers and IT Pros ● One Docker platform and one adoption journey for all enterprise applications and infrastructure ● Docker CS Engine with Windows Server 2016 at no additional cost
  • 63. 63 Docker on Windows Server 2016 Docker EE is free and support by Microsoft directly
  • 64. 64 Windows and Hyper V Containers
  • 65. 65 Windows vs Linux Containers (Docker Store)
  • 66. Oracle in Docker Store Docker Adoption
  • 68. 68 Oracle Database Enterprise Edition Available as Docker image Free for development and testing
  • 70. 70 Legacy to Containerized App The proper way
  • 71. 71 I Want to Escape from VM ASAP, what to do? A faster way ⇨ Image2Docker
  • 72. 72 Sample Use Case 2 applications (1 Linux, 1 Windows) running on VM
  • 73. 73 Sample Use Case 2 applications (1 Linux, 1 Windows) running on VM
  • 74. 74 Sample Use Case 2 applications (1 Linux, 1 Windows) running on VM
  • 76. 76 Image2Docker - Linux make prepare make build make builtin-prep sudo bin/v2c-darwin64 build -n img.vmdk https://github.com/docker/communitytools-image2docker-linux
  • 77. 77 Image2Docker - Windows Install-Module Image2Docker Import-Module Image2Docker ConvertTo-Dockerfile ` -ImagePath c:iis.vhd ` -OutputPath c:i2d2iis ` -Artifact IIS https://github.com/docker/communitytools-image2docker-win
  • 80. Docker Editions (Content based on Dockercon 2017)
  • 83. 83 Docker Enterprise Edition (EE) CaaS enabled platform for the modern software supply chain
  • 84. 84 Docker Enterprise Edition (EE) Docker EE Components
  • 85. 85 Docker Enterprise Edition (EE) Docker EE Architecture
  • 86. 86 Docker Enterprise Edition (EE) Docker EE Plans ● Basic ● Standard ● Advanced
  • 87. 87 Docker Enterprise Edition (EE) Image - Promotion Branching
  • 88. 88 Docker Enterprise Edition (EE) Image - Scanning
  • 89. 89 Docker Enterprise Edition (EE) Image - Scanning Result (UCP)
  • 90. 90 Docker Enterprise Edition (EE) Mixed Windows/Linux Cluster
  • 91. Docker for Various Platforms Docker Editions
  • 92. 92 Docker CE and EE Supported Platforms
  • 93. 93 Docker for various Platforms Example : Docker for AWS
  • 94. 94 Docker for various Platforms Example : Docker for Google Cloud (GCP)
  • 96. 96 Docker Cloud • Manage Build and Images − Provides a hosted registry service − Link to your source code repository • Swarm Mode (Beta) − Provision swarms or register existing swarms to popular cloud providers − Support multiple providers in a single user interface − Use your Docker ID to authenticate and securely access personal or team swarms • Standard Mode − Link to your hosts, upgrade the Docker Cloud agent, and manage container distribution − Deploy and manage nodes, services, and applications in Docker Cloud • Pricing − Contact Docker
  • 97. 97 Docker Cloud Docker Cloud provisions Docker CE Editions
  • 98. 98 Docker Cloud Provision Swarms for multiple cloud providers
  • 100. 100 Docker Cloud vs Enterprise Edition Feature Docker EE Docker Cloud Docker Engine Version Docker EE Docker CE, Docker EE (Basic) Private Image Registry Your own registry Host by Docker User Interface Docker UCP (Universal Control Plane) Docker Cloud UI Image Security Scan Support Support User Security Create your own user/group, Role based access control Docker ID Docker Datacenter Included (Standard, Advance) Not included Automated Development Pipelines Included Not included Private Cloud Full Support Partially Support (Bring your own Swarm) Pricing Visit Docker site Contact Docker ✦ Contact Docker for latest information
  • 102. 102 Container Service Orchestration Platform Alternatives • Public Cloud Providers − Amazon EC2 Container Service − Google Container Engine (based on Kubernetes) • Redhat Openshift − Redhat Enterprise Linux, Docker, Kubernetes • CoreOS − Container Linux, Quay Container Registry, Tectonic Kubernetes • Apache Mesos − DC/OS (Datacenter Operating System) • IBM, HPE, Oracle, etc.
  • 103. Demo
  • 104. 104 Docker Playground • Play with Docker − http://labs.play-with-docker.com • Github − https://github.com/play-with-docker/play-with-docker
  • 105. 105 Sample Application • Github − https://github.com/clarenceh/docker-contact
  • 107. 107 Let’s Keep the Meetup Running • Let’s work together to keep the meetup active • Speakers WANTED • Share with each other about your Docker journey • Reach out for venues for deep dive − Workshops − The best way to learn is to do some real stuff • Containerize your application • Setup a Docker Swarm cluster • Use Docker Compose to deploy your stack Hey, I need HELP!!!