What is Docker? How does it compare Chef/Vagrant/Ansible? Should I be using it? Is it still cool? All these questions and many more besides will be answered in this no-holds-barred look into the technology that is still taking the world by storm.
During the talk we'll discover what Docker is and how it can be integrated into your workflow. Using a simple app, we'll walk through the process of dockerify a project and it's dependencies. We'll also look at some common pitfalls such as managing your data in a container and running multiple projects on a single host.
If you are looking to manage all your projects in a simple and consistent way, or just want to know what all the hype is about, come along and discover the hidden secrets of Docker.
2. What is Docker?
Images and Volumes
Docker Hub
What is Docker?
Use Cases
How it works, terminology and
architecture.
Getting started & Command line
tools
Dockifing an app -> introducing
docker-compose
Docker In Development
Use Cases
Docker Cloud
Docker In Production
DOCKER UNCOVERED
Docker Uncovered
7. DOCKER IS…
• Managing Linux* hosts/machines
• Starting and stopping containers
• Managing container file system (volumes)
• Managing container images
A SET OF TOOLS FOR
Docker Uncovered
10. A BRIEF HISTORY OF WEB COMPUTING
that may not actually be that accurate
1992
Dedicated Server
1996
Shared Hosting
2006
Cloud Computing
2014
Docker
Docker Uncovered
been using docker for less than a year
not even been to a docker con
these are my experiences, that of my teammates
there will be some code!
there will be a live demo !!!
fell free to contribute to the discussion, add observations
who is using docker at work (dev or prod)?
Molly Dock (pictured above), otherwise known as #763 (Ross, California)
What are Linux Containers?
- lets explain with example
- each container has its own (separate) processes, memory - even users
All containers use the same Kernel
separate network adapter (different IPs)
- each container has its own (separate) processes, memory - even users
All containers use the same Kernel
separate network adapter (different IPs)
Command line tools
starting and stopping containers
managing container’s file systems (volumes)
managing container images (push/pull)
managing hosts
Docker Hub - just like github for images
if you're watching closely: looks like a VM?
Most like: Vagrant + Chef/Ansible
Virtual Box
on dev we want fast & be similar to production
components getting smaller / cheaper
handing over the decision on what to install to dev
dev-ops-dev (developers choose which kit)
dev-ops-ops (ops decide where it runs, scaling, redundancy,resilience,
Dev Ops begins with Cloud Computing
DO-Devs / DO-Ops starts with Docker (devs take back power to decide what, ops decide how)
Molly Dock (pictured above), otherwise known as #763 (Ross, California)
In Development Use Cases:
If you currently use vagrant and/or virtual box (or vm ware)
if you don't !
If work on multiple projects (different versions of mysql, php etc)
If your project has multiple dependencies (Redis, Mongo, Memcached etc)
Microservices / SOA
Don’t use Docker if:
Everything is ticking over nicely thank you very much (yack shaving is expensive)
your not using Linux
not shown - images are made up of layers
docker-machine status
docker-machine start
docker run ubuntu /bin/echo "Hello World"
docker ps
docker run -d -p 80:80 --name php-hello-world -v "$PWD":/var/www/html php:7.0-apache
- the basic, but not its strength
tell docker how to start multiple containers
networks them all together inside the machine
Is Docker Ready for production?
Are you and your company ready for Docker ?
containers - yes
docker - its complicated
Why would you use it?
Docker eco-system is good:
Hub -> official images
Documentation
Tools Cloud + Swarm
App is a package (OS + App Code + Config)
Utilisation
Why Not?
Still very new, new problems
create an automated build
check build settings
check tags
Add a Node (bring your own)
Add a Stack (stackfile looks like compose file)
show multiple stacks via ha proxy
swarm- multiple hosts acting as a single host + some tricks
kubernets - like swarm, not docker native, v powerful. Handles volumes well (a container problem)
signup code
best practices:
one process per container
keep ‘em small