Docker What ?
The BIG picture
Frank Maounis (@maounis)
Who am I?
Who am I
- I am @maounis
- I have co-founded Papaki, TopHost
- I think I know a few things about containers
- I have a lot to learn about Docker
- But I like to try all kinds of new crazy things like
Arduino, Raspberry Pi, Core, Bitcoin, Docker…
- And I think Docker will help us build better
applications and new cool tools
Let’s have in mind this problem
And this problem
Raise your
hand if you
have...
Docker What?
Docker is a new container technology
to
“Build, ship and run
any app, anywhere”
What do
you mean
anywhere?
Docker allows you to
Take any Linux program, and put it in a “container”
- Web apps and services like Go, Node, PHP
- Data Stores: SQL, NoSQL, big data
(Cassandra, ElasticSearch, Hadoop, Mongo,
MySQL, Redis...)
- Other server-y things (Mesos, Zookeeper...)
- Command-line tools (AWS CLI, GCutil...)
Win/FreeBSD/OS X coming soon (now use Wine)
OK
But what
Docker
does?
Docker container
Docker containers wrap up a
piece of software in a complete
filesystem that contains
everything it needs to run: code,
runtime, system tools, system
libraries – anything you can install
on a server. This guarantees that
it will always run the same,
regardless of the environment it is
running in.
But how is this different from VMs
Containers have similar resource isolation and allocation
benefits as virtual machines but a different architectural
approach allows them to be much more portable and
efficient.
OK. So
What?
Well, first of all no more
Because now you can
Deploy something:
- And if it works locally, it will work on the server
with exactly the same behavior
- Regardless of versions
- Regardless of distros
- Regardless of dependencies
How does this help us devs?
Well when your app is in Docker containers, you
don’t have to worry about setting up and
maintaining different environments or different
tooling for each language.
Focus on creating new features, fixing issues and
shipping software.
What about ops?
Docker creates a common framework for developers
and sysadmins to work together on distributed
applications
Ok, I get it
How
exactly
Docker
helps?
Remember this problem?
Looks like shipping goods problem
Problem solved
One solution for all
Real Word Analogy (shipping container):
Tell me more
about these
containers
Containers look like
microservices
The principle is:
- “Do one thing, and do it well”
- One container for the web server
- One container for the database
- One container for logging
- etc.
But how they communicate?
Containers can share almost anything, selectively:
- files
(logs, data at rest, audit)
- network
(traffic routing and analysis, monitoring)
- process space, memory
(process tracing and debugging)
Containers
and
Microservices?
Interesting!
Microservices
A style of software architecture:
Break
BIG monolithic
applications
down into many small services
OK
Can you
give me
an example?
Microservices with containers
E-commerce example:
- web front-end
- catalog of products
- inventory/stock management
- shipping calculator
- payment processor
- billing/invoicing
- user profiles
Is this really working?
YES!
- Docker users on average ship software 7X more
after deploying Docker in their environment.
More frequent updates provide more value to
your final users faster.
Why Microservices are good?
- Use right language/tool for different services
- Replace services easily
- Less coordination required
- Enables effective ownership of services
- Promotes many small teams instead of one big
* smaller teams = less communication overhead
* see Jeff Bezos “two-pizza” rule
My humble personal thoughts
- Solving development/production issues is just
the first application of Docker
- Docker will eventually enable the creation of
distributed applications in Micro-Data Centers
- Services will be geo-distributed to hosts near
you without you knowing it
Conclusion?
Containers before Docker
Containers after Docker
Very Cool!
But is this
Open Source?
Yes Docker is Open Source
- Public GitHub repository (github.com/docker)
- Bug reports: GitHub issue tracker
- Mailing lists / IRC channels
- Docker Governance Advisory Board (elected by
contributors)
Enough!
How can
I try it?
Want to try it?
Get Docker Toolbox:
Thank you!

Docker what - Frank Maounis

  • 1.
    Docker What ? TheBIG picture Frank Maounis (@maounis)
  • 2.
  • 3.
    Who am I -I am @maounis - I have co-founded Papaki, TopHost - I think I know a few things about containers - I have a lot to learn about Docker - But I like to try all kinds of new crazy things like Arduino, Raspberry Pi, Core, Bitcoin, Docker… - And I think Docker will help us build better applications and new cool tools
  • 4.
    Let’s have inmind this problem
  • 5.
  • 6.
    Raise your hand ifyou have...
  • 7.
  • 8.
    Docker is anew container technology to “Build, ship and run any app, anywhere”
  • 9.
  • 10.
    Docker allows youto Take any Linux program, and put it in a “container” - Web apps and services like Go, Node, PHP - Data Stores: SQL, NoSQL, big data (Cassandra, ElasticSearch, Hadoop, Mongo, MySQL, Redis...) - Other server-y things (Mesos, Zookeeper...) - Command-line tools (AWS CLI, GCutil...) Win/FreeBSD/OS X coming soon (now use Wine)
  • 11.
  • 12.
    Docker container Docker containerswrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.
  • 13.
    But how isthis different from VMs Containers have similar resource isolation and allocation benefits as virtual machines but a different architectural approach allows them to be much more portable and efficient.
  • 14.
  • 15.
    Well, first ofall no more
  • 16.
    Because now youcan Deploy something: - And if it works locally, it will work on the server with exactly the same behavior - Regardless of versions - Regardless of distros - Regardless of dependencies
  • 17.
    How does thishelp us devs? Well when your app is in Docker containers, you don’t have to worry about setting up and maintaining different environments or different tooling for each language. Focus on creating new features, fixing issues and shipping software.
  • 18.
    What about ops? Dockercreates a common framework for developers and sysadmins to work together on distributed applications
  • 19.
    Ok, I getit How exactly Docker helps?
  • 20.
  • 21.
    Looks like shippinggoods problem
  • 22.
  • 23.
    One solution forall Real Word Analogy (shipping container):
  • 24.
    Tell me more aboutthese containers
  • 25.
    Containers look like microservices Theprinciple is: - “Do one thing, and do it well” - One container for the web server - One container for the database - One container for logging - etc.
  • 26.
    But how theycommunicate? Containers can share almost anything, selectively: - files (logs, data at rest, audit) - network (traffic routing and analysis, monitoring) - process space, memory (process tracing and debugging)
  • 27.
  • 28.
    Microservices A style ofsoftware architecture: Break BIG monolithic applications down into many small services
  • 29.
  • 30.
    Microservices with containers E-commerceexample: - web front-end - catalog of products - inventory/stock management - shipping calculator - payment processor - billing/invoicing - user profiles
  • 31.
    Is this reallyworking? YES! - Docker users on average ship software 7X more after deploying Docker in their environment. More frequent updates provide more value to your final users faster.
  • 32.
    Why Microservices aregood? - Use right language/tool for different services - Replace services easily - Less coordination required - Enables effective ownership of services - Promotes many small teams instead of one big * smaller teams = less communication overhead * see Jeff Bezos “two-pizza” rule
  • 34.
    My humble personalthoughts - Solving development/production issues is just the first application of Docker - Docker will eventually enable the creation of distributed applications in Micro-Data Centers - Services will be geo-distributed to hosts near you without you knowing it
  • 35.
  • 36.
  • 37.
  • 38.
    Very Cool! But isthis Open Source?
  • 39.
    Yes Docker isOpen Source - Public GitHub repository (github.com/docker) - Bug reports: GitHub issue tracker - Mailing lists / IRC channels - Docker Governance Advisory Board (elected by contributors)
  • 40.
  • 41.
    Want to tryit? Get Docker Toolbox:
  • 42.