5. Solution: Intermodal Shipping Container
…in between, can be loaded and
unloaded, stacked, transported
efficiently over long distances,
and transferred from one mode
of transport to another
A standard container that is
loaded with virtually any
goods, and stays sealed until
it reaches final delivery.
6. Static website Web frontendUser DB Queue Analytics DB
Development
VM
QA server Public Cloud Contributor’s
laptop
Docker is a shipping container system for code
Production
Cluster
Customer Data
Center
…that can be manipulated using
standard operations and run
consistently on virtually any
hardware platform
An engine that enables any
payload to be encapsulated
as a lightweight, portable,
self-sufficient container…
9. Why use Docker ?
Build once…..run anywhere*
Config once…. run anything*
Anybody run anytime*
10. Docker Containers vs VM
App
A
Hypervisor (Type 2)
Host OS
Server
Guest
OS
Bins/
Libs
App
A’
Guest
OS
Bins/
Libs
App
B
Guest
OS
Bins/
Libs
AppA’
Docker
Host OS
Server
Bins/Libs
AppA
Bins/Libs
AppB
AppB’
AppB’
AppB’
VM
Container
Containers are isolated,
but share OS and, where
appropriate, bins/libraries
Guest
OS
Guest
OS
…result is significantly faster deployment,
much less overhead, easier migration,
faster restart
11. Docker Containers vs VM
Feature Container VM
start Seconds level Minitues level
Hardisk MB GB
Performance Native Less than Native
Stand-alone Thouands of containers Tens of VM
20. CI + CDContinuous Integration
Continuous Deployment
Continuous Delivery
21. Version control
system
Continuous
Integration
Server
Test Instance
Production
CI notifies of
pass / fail
Developer
Pulls From
Trunk
1
Make incremental
changes on local
environment
2
Developer
pushes
commits
3
CI monitors repository
for changes
4
Changes Kick off
test Build
5
Run Tests:
Unit
Integration
Smoke
6
Report back test
results 7
Artifact
Repository
9
Pushing to prod could
just mean changing the
reverse proxy server
If tests pass:
Deploy code to
artifact
repository
8
Bringing it all together
2013年.3月Opensource, 用Google go语言开发。是对进程进行封装隔离,属于操作系统层面的虚拟化技术,由于隔离的进程独立于宿主和其他的隔离的进程,因此称为容器。 Docker 在其基础上,进行了进一步封装,从文件系统,网络互连到进程隔离等. Docker是一个platform( developing, deploying and running services with Linux containers)