SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
VAGRANT/DOCKER INTRO
BUILDING VMS EFFICIENTLY WITH VAGRANT
STEPPING INTO THE CONTAINER WORLD WITH DOCKER
Created by /@zepag @XwaldRob
VAGRANT
WHAT IS IT?
A tool to build VMs based on boxes (ISOs)
Used to be as close as possible to Prod
Initially build for VirtualBox and extended
Written in Ruby
Free (VirtualBox) | Pay (VMWare Fusion)
WHY SHOULD I CARE?
Fast way to create a dedicated Dev environment
Pets vs Cattle: throw away VMs
It's much faster than creating a VM by hand and configuring it
HOW DO I INSTALL IT?
Get VirtualBox
Download the Vagrant (Mac/Linux/Win)installer
Get a Box
HOW DO I ACCESS IT
SERVICES
NAT
config.vm.network :forwarded_port, guest: 8080, host: 80
Private Network
config.vm.network "private_network", ip: "192.168.60.100"
Public Network
config.vm.network "public_network"
REMOTE CONNECTION
SSH/RDP
HOW DO I CUSTOMIZE IT?
config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
# vb.gui =
# Customize the amount of memory on the VM:
vb.cpus = 4
vb.memory = 4096
config.vm.hostname = "dockerbox"
end
WHAT ABOUT CONFIGURATION MANAGEMENT?
ALL MAJOR PROVISIONERS ARE SUPPORTED
shell
Chef
Puppet
Ansible
CFEngine
...
CREATE A SINGLE VM
SHELL PROVISIONNING - PRIVATE NETWORK
> vagrant init chef/CentOS-7.0
Survival kit
up
halt
suspend
resume
reload
ssh
destroy
CREATE A CLUSTER
(1..$num_instances).each do |i|
config.vm.define vm_name = "%s-%02d" % [$instance_name_prefix, i] do |config|
config.vm.hostname = vm_name
...
end
config.vm.provider :virtualbox do |vb|
vb.gui = vm_gui
vb.memory = vm_memory
vb.cpus = vm_cpus
end
ip = "172.17.8.#{i+100}"
config.vm.network :private_network, ip: ip
[...]
end
DEMO: DOCKER VM
ANSIBLE PROVISIONING - PRIVATE NETWORK
---
- hosts: all
sudo: yes
sudo_user: root
tasks:
- name: Download latest docker binary archive
get_url:
url: http://get.docker.io/builds/Linux/x86_64/docker-latest.tgz
dest: /tmp
[...]
DOCKER
WHAT IS IT?
Docker is an open platform for developers and sysadmins to
build, ship, and run distributed applications. Consisting of
Docker Engine, a portable, lightweight runtime and packaging
tool, and Docker Hub, a cloud service for sharing applications
and automating workflows, Docker enables apps to be
quickly assembled from components and eliminates the
friction between development, QA, and production
environments. As a result, IT can ship faster and run the same
app, unchanged, on laptops, data center VMs, and any cloud.
( )docker.com
SOLOMON HYKES, DOCKER’S FOUNDER & CTO, GIVES AN OVERVIEW OF DOCKER IN THIS SHORT VIDEO
(7:16).
CONTAINERS?
RUNNING CONTAINERS EVERYWHERE!
The underlying technology is mature (cgroups, namespaces,
copy-on-write systems)
Ability to run on any Linux server today: physical, virtual, VM,
cloud, OpenStack...
Ability to switch easily from one host to the other
Self contained environment = no dependency hell
WHAT'S IN IT FOR DEVS AND OPS?
if you catch my drift ;-)
DEVS WORRY ABOUT
code
libraries
apps
data
all linux servers look the same
OPS WORRY ABOUT
logging
file system
monitoring
networking
all containers start, stop, copy, attach, etc ... the same way
THAT WAS THE ...
... DON'T BURST MY BUBBLE MOMENT
MODERN SOFTWARE FACTORY
THE SAME CONTAINER CAN GO FROM DEV, TO TEST, TO QA, TO PROD
DOCKER ARCHITECTURE
The Docker daemon
Receives and processes incoming Docker API requests
The Docker client
Command line tool - the docker binary
Talks to the Docker daemon via the Docker API
Docker Hub Registry
Public image registry
The Docker daemon talks to it via the registry API
TRY IT!
RUNNING DOCKER
Linux
native
OS X & Windows
via a virtual machine
to get Docker installedAll you need
Ubuntu, Mac OS X, Windows, AWS ec2, Arch Linux, CentOS, Crux Linux, Debian, Fedora, Frugalware,
GCE, Gentoo, IBM Softlayer, Joyent Compute Service, Microsoft Azure, Rackspace Cloud, RHEL,
Oracle Linux, Suse
THE "HELLO, WORLD" CONTAINER
We used one of the smallest, simplest images available: busybox
Busybox is typically used in embedded systems like routers, stripped down linux distros, ...
We ran a single process and echo'ed hello world
> docker run busybox echo "Hello World"
Hello, World
BARE-BONES UBUNTU ON CENTOS
Runs bash in a stripped ubuntu system on CentOS
> docker run -it ubuntu bash
root@6489e6302513:/# dpkg -l | wc -l
189
root@6489e6302513:/# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 07:27 ? 00:00:00 bash
root 18 1 0 07:28 ? 00:00:00 ps -ef
root@6489e6302513:/#
BACKGROUND CONTAINERS
A container that runs forever
A container running in the background
Listing runing containers
Show container logs (tailing)
Stop/Kill containers
Restart/Attach to a container
SO WHAT IS AN IMAGE?
DIFFERENCE BETWEEN CONTAINERS AND
IMAGES
An image is a read-only FS
A container is an encapsulated set of processes in a read-
write copy of that FS
docker run starts a container from an image
OOP ANALOGY
Images are conceptually similar to classes
Layers are conceptually similar to inheritance
Containers are conceptually similar to instances
HOW DO WE MODIFY IMAGES THEN?
We don't
We create a new container from that image
We make changes to that container
When done, we transform them into a new layer
A new image is created by staking the new layer on top of the
old one
IMAGE NAMESPACES
Root: centos
User (Docker Hub): bob/infinity
Self-Hosted: registry.example.com:5000/a-private-image
BUILDING IMAGES INTERACTIVELY
docker commit
docker tag
docker diff
BUILDING IMAGES WITH A DOCKERFILE
Dockerfile
FROM centos
ENV REFRESHED_AT 2015-06-11
RUN yum -y install wget
Run
docker build -t "bob/myimage" .
INSPECTING CONTAINERS
docker inspect presentation_pres_1 J '.[].Volumes'
If you want to parse JSON from the shell, use JQ
--format
docker inspect --format '{{ json .Created }}' presentation_pres_1
NETWORKING BASICS
All based on port mapping private addresses (because of IPV4)
-P --publish-all: will publish all exposed ports
-p host:guest: manual allocation
SO LET'S DO SOMETHING INTERESTING
CROSS COMPILING A GO APP
We'll download
We'll compile and run your app
We'll cross compile it for linux, windows and OS X
golang images
WORKING WITH VOLUMES
Bypassing the copy-on-write system to obtain native disk I/O
performance
Bypassing copy-on-write to leave some files out of docker
commit
Sharing a directory between multiple containers
Sharing a directory between the host and a container
Sharing a single file between the host and a container
VOLUMES
IN A COMMAND
docker run -d -v /var/lib/postgresql postgresql
IN A DOCKERFILE
Volume /var/lib/postgresql
Volumes
same performance an host I/O
content is not included into a resulting image
content can not be changed in a Dockerfile
can be shared across containers
exist independently of containers
USE CASES
You want to decide on your FS strategy (LVM, ZFS, BtrFS, ...)
You have a separate disk with better performance (SSD) or
resiliency (EBS) than the system disk, and you want to put
important data on that disk
You want to share a directory on your host with the container
What happens when you remove containers?
one container reference, last container orphan,
/var/lib/docker
LINKING CONTAINERS
USING NAMES AND LINKS TO COMMUNICATE ACROSS CONTAINERS
Benefit
container isolation
Drawback
operationally challenging (ambassadors, overlay
network)
Wordpress: 2 containers linked
DOCKER COMPOSE
"BIG ASS" COMMANDS CAN BE REDUCED TO NOTHING
wordpress:
image: wordpress
links:
- db:mysql
ports:
- 8080:80
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: pass1234
DOCKER HUB
https://hub.docker.com/
push/pull/auto build (Github)
public/private($)
finding images/security
SECURITY
Do not expose the docker API!
And ... do not expose the docker API!
For good measue: do not expose the docker API!
If you do: TLS!!!
--privileged (full access) or --net host (sniff all traffic in and
out of the host)
There is more to it: containers don't contain, default user is
root, use external tools (SELinux)
TIP OF THE ICEBERG
Now that you know more about docker, there is docker machine that lets you create docker hosts on
VirtualBox, AWS ec2, Rackspace, ... There's docker Swarm that allows you to mange docker host
ckusters, Fleet/etcd (CoreOS), Kubernetes (Google), Consul (Hashicorp), Mesos (Apache/Twitter), etc
... for orchestration.
You've seen the tip of the iceberg ;)
DOCKER MACHINE
CREATE A DOCKER HOST WITH ONE COMMAND
> dm create -d amazonec2 
--amazonec2-access-key akey 
--amazonec2-instance-type t2.micro 
--amazonec2-region us-east-1 
--amazonec2-secret-key asecretkey 
--amazonec2-vpc-id avpc
dockerec2
> dm create -d virtualbox dev
TODO
DOCKER SWARM
NATIVE CLUSTERING SYSTEM
This presentation was done with using in a
VM runnnig
revealjs Docker
Vagrant Centos 7
You can download the presentation and the demos on Github

Contenu connexe

Tendances

Docker Basic Presentation
Docker Basic PresentationDocker Basic Presentation
Docker Basic PresentationAman Chhabra
 
Austin - Container Days - Docker 101
Austin - Container Days - Docker 101Austin - Container Days - Docker 101
Austin - Container Days - Docker 101Bill Maxwell
 
Vagrant and docker
Vagrant and dockerVagrant and docker
Vagrant and dockerDuckDuckGo
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshopRuncy Oommen
 
Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Jérôme Petazzoni
 
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGHDeploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGHErica Windisch
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzurePatrick Chanezon
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to dockerWei-Ting Kuo
 
Dockerizing your applications - Docker workshop @Twitter
Dockerizing your applications - Docker workshop @TwitterDockerizing your applications - Docker workshop @Twitter
Dockerizing your applications - Docker workshop @TwitterdotCloud
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
 
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...Jérôme Petazzoni
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XJérôme Petazzoni
 
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05dotCloud
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Jérôme Petazzoni
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSFrank Munz
 

Tendances (20)

Docker Basic Presentation
Docker Basic PresentationDocker Basic Presentation
Docker Basic Presentation
 
Austin - Container Days - Docker 101
Austin - Container Days - Docker 101Austin - Container Days - Docker 101
Austin - Container Days - Docker 101
 
Vagrant and docker
Vagrant and dockerVagrant and docker
Vagrant and docker
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
 
Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)
 
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGHDeploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
 
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on AzureDevoxx France 2015 - The Docker Orchestration Ecosystem on Azure
Devoxx France 2015 - The Docker Orchestration Ecosystem on Azure
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
Dockerizing your applications - Docker workshop @Twitter
Dockerizing your applications - Docker workshop @TwitterDockerizing your applications - Docker workshop @Twitter
Dockerizing your applications - Docker workshop @Twitter
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
 
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12X
 
Introduction To Docker
Introduction To  DockerIntroduction To  Docker
Introduction To Docker
 
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
 
Docker - introduction
Docker - introductionDocker - introduction
Docker - introduction
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCS
 
Docker by Example - Quiz
Docker by Example - QuizDocker by Example - Quiz
Docker by Example - Quiz
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 

Similaire à Build VMs and containers efficiently with Vagrant and Docker

codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014Carlo Bonamico
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET DevelopersTaswar Bhatti
 
Apt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageApt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageAlessandro Cinelli (cirpo)
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioJérôme Petazzoni
 
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015Luciano Fiandesio - Docker 101 | Codemotion Milan 2015
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015Codemotion
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux ContainerBalaji Rajan
 
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
 
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
Deploying .net core apps to Docker - dotnetConf Local BengaluruDeploying .net core apps to Docker - dotnetConf Local Bengaluru
Deploying .net core apps to Docker - dotnetConf Local BengaluruSwaminathan Vetri
 
Docker module 1
Docker module 1Docker module 1
Docker module 1Liang Bo
 
Docker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini AnandDocker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini AnandPRIYADARSHINI ANAND
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationErica Windisch
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 applicationRoman Rodomansky
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with DockerAndrey Hristov
 

Similaire à Build VMs and containers efficiently with Vagrant and Docker (20)

Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Docker intro
Docker introDocker intro
Docker intro
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
Apt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageApt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stage
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific Trio
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015Luciano Fiandesio - Docker 101 | Codemotion Milan 2015
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015
 
The Docker Ecosystem
The Docker EcosystemThe Docker Ecosystem
The Docker Ecosystem
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
 
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
 
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
Deploying .net core apps to Docker - dotnetConf Local BengaluruDeploying .net core apps to Docker - dotnetConf Local Bengaluru
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Docker In Brief
Docker In BriefDocker In Brief
Docker In Brief
 
Docker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini AnandDocker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini Anand
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with Docker
 

Plus de Agile Partner S.A.

Domain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementationDomain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementationAgile Partner S.A.
 
Devops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesDevops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesAgile Partner S.A.
 
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Agile Partner S.A.
 
Agilité : la voix de la collaboration
Agilité : la voix de la collaborationAgilité : la voix de la collaboration
Agilité : la voix de la collaborationAgile Partner S.A.
 
Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Agile Partner S.A.
 
ALM and DevOps in the health industry
ALM and DevOps in the health industryALM and DevOps in the health industry
ALM and DevOps in the health industryAgile Partner S.A.
 
Agile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Partner S.A.
 
Agile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Partner S.A.
 
Agile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Partner S.A.
 
Retour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéRetour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéAgile Partner S.A.
 
Continuous innovation with Lean Startup
Continuous innovation with Lean StartupContinuous innovation with Lean Startup
Continuous innovation with Lean StartupAgile Partner S.A.
 
Maîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileMaîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileAgile Partner S.A.
 
Kanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamKanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamAgile Partner S.A.
 
Agility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgile Partner S.A.
 

Plus de Agile Partner S.A. (20)

Domain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementationDomain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementation
 
Devops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesDevops: la réunion des co-propriétaires
Devops: la réunion des co-propriétaires
 
Découverte de l'esprit agile
Découverte de l'esprit agileDécouverte de l'esprit agile
Découverte de l'esprit agile
 
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
 
Agilité : la voix de la collaboration
Agilité : la voix de la collaborationAgilité : la voix de la collaboration
Agilité : la voix de la collaboration
 
Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)
 
ALM and DevOps in the health industry
ALM and DevOps in the health industryALM and DevOps in the health industry
ALM and DevOps in the health industry
 
Agile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePoint
 
Agile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOps
 
Agile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile Testing
 
Introduction to agile methods
Introduction to agile methodsIntroduction to agile methods
Introduction to agile methods
 
Retour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéRetour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilité
 
Continuous innovation with Lean Startup
Continuous innovation with Lean StartupContinuous innovation with Lean Startup
Continuous innovation with Lean Startup
 
Agile testing games
Agile testing gamesAgile testing games
Agile testing games
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Lkfr12 - De Scrum à Kanban
Lkfr12 - De Scrum à KanbanLkfr12 - De Scrum à Kanban
Lkfr12 - De Scrum à Kanban
 
Maîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileMaîtriser et controler vos projets Agile
Maîtriser et controler vos projets Agile
 
Kanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamKanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support team
 
It job day Henam 2011-06-20
It job day Henam 2011-06-20It job day Henam 2011-06-20
It job day Henam 2011-06-20
 
Agility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years research
 

Dernier

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
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
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
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
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
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
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 

Dernier (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
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
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
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...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
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.
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 

Build VMs and containers efficiently with Vagrant and Docker

  • 1. VAGRANT/DOCKER INTRO BUILDING VMS EFFICIENTLY WITH VAGRANT STEPPING INTO THE CONTAINER WORLD WITH DOCKER Created by /@zepag @XwaldRob
  • 3. WHAT IS IT? A tool to build VMs based on boxes (ISOs) Used to be as close as possible to Prod Initially build for VirtualBox and extended Written in Ruby Free (VirtualBox) | Pay (VMWare Fusion)
  • 4. WHY SHOULD I CARE? Fast way to create a dedicated Dev environment Pets vs Cattle: throw away VMs It's much faster than creating a VM by hand and configuring it
  • 5. HOW DO I INSTALL IT? Get VirtualBox Download the Vagrant (Mac/Linux/Win)installer Get a Box
  • 6. HOW DO I ACCESS IT SERVICES NAT config.vm.network :forwarded_port, guest: 8080, host: 80 Private Network config.vm.network "private_network", ip: "192.168.60.100" Public Network config.vm.network "public_network" REMOTE CONNECTION SSH/RDP
  • 7. HOW DO I CUSTOMIZE IT? config.vm.provider "virtualbox" do |vb| # Display the VirtualBox GUI when booting the machine # vb.gui = # Customize the amount of memory on the VM: vb.cpus = 4 vb.memory = 4096 config.vm.hostname = "dockerbox" end
  • 8. WHAT ABOUT CONFIGURATION MANAGEMENT? ALL MAJOR PROVISIONERS ARE SUPPORTED shell Chef Puppet Ansible CFEngine ...
  • 9. CREATE A SINGLE VM SHELL PROVISIONNING - PRIVATE NETWORK > vagrant init chef/CentOS-7.0 Survival kit up halt suspend resume reload ssh destroy
  • 10. CREATE A CLUSTER (1..$num_instances).each do |i| config.vm.define vm_name = "%s-%02d" % [$instance_name_prefix, i] do |config| config.vm.hostname = vm_name ... end config.vm.provider :virtualbox do |vb| vb.gui = vm_gui vb.memory = vm_memory vb.cpus = vm_cpus end ip = "172.17.8.#{i+100}" config.vm.network :private_network, ip: ip [...] end
  • 11. DEMO: DOCKER VM ANSIBLE PROVISIONING - PRIVATE NETWORK --- - hosts: all sudo: yes sudo_user: root tasks: - name: Download latest docker binary archive get_url: url: http://get.docker.io/builds/Linux/x86_64/docker-latest.tgz dest: /tmp [...]
  • 13. WHAT IS IT? Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud. ( )docker.com
  • 14. SOLOMON HYKES, DOCKER’S FOUNDER & CTO, GIVES AN OVERVIEW OF DOCKER IN THIS SHORT VIDEO (7:16).
  • 16. RUNNING CONTAINERS EVERYWHERE! The underlying technology is mature (cgroups, namespaces, copy-on-write systems) Ability to run on any Linux server today: physical, virtual, VM, cloud, OpenStack... Ability to switch easily from one host to the other Self contained environment = no dependency hell
  • 17. WHAT'S IN IT FOR DEVS AND OPS? if you catch my drift ;-)
  • 18. DEVS WORRY ABOUT code libraries apps data all linux servers look the same
  • 19. OPS WORRY ABOUT logging file system monitoring networking all containers start, stop, copy, attach, etc ... the same way
  • 20. THAT WAS THE ... ... DON'T BURST MY BUBBLE MOMENT
  • 21. MODERN SOFTWARE FACTORY THE SAME CONTAINER CAN GO FROM DEV, TO TEST, TO QA, TO PROD
  • 22. DOCKER ARCHITECTURE The Docker daemon Receives and processes incoming Docker API requests The Docker client Command line tool - the docker binary Talks to the Docker daemon via the Docker API Docker Hub Registry Public image registry The Docker daemon talks to it via the registry API
  • 24.
  • 25. RUNNING DOCKER Linux native OS X & Windows via a virtual machine to get Docker installedAll you need Ubuntu, Mac OS X, Windows, AWS ec2, Arch Linux, CentOS, Crux Linux, Debian, Fedora, Frugalware, GCE, Gentoo, IBM Softlayer, Joyent Compute Service, Microsoft Azure, Rackspace Cloud, RHEL, Oracle Linux, Suse
  • 26. THE "HELLO, WORLD" CONTAINER We used one of the smallest, simplest images available: busybox Busybox is typically used in embedded systems like routers, stripped down linux distros, ... We ran a single process and echo'ed hello world > docker run busybox echo "Hello World" Hello, World
  • 27. BARE-BONES UBUNTU ON CENTOS Runs bash in a stripped ubuntu system on CentOS > docker run -it ubuntu bash root@6489e6302513:/# dpkg -l | wc -l 189 root@6489e6302513:/# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 07:27 ? 00:00:00 bash root 18 1 0 07:28 ? 00:00:00 ps -ef root@6489e6302513:/#
  • 28. BACKGROUND CONTAINERS A container that runs forever A container running in the background Listing runing containers Show container logs (tailing) Stop/Kill containers Restart/Attach to a container
  • 29. SO WHAT IS AN IMAGE?
  • 30. DIFFERENCE BETWEEN CONTAINERS AND IMAGES An image is a read-only FS A container is an encapsulated set of processes in a read- write copy of that FS docker run starts a container from an image
  • 31. OOP ANALOGY Images are conceptually similar to classes Layers are conceptually similar to inheritance Containers are conceptually similar to instances
  • 32. HOW DO WE MODIFY IMAGES THEN? We don't We create a new container from that image We make changes to that container When done, we transform them into a new layer A new image is created by staking the new layer on top of the old one
  • 33. IMAGE NAMESPACES Root: centos User (Docker Hub): bob/infinity Self-Hosted: registry.example.com:5000/a-private-image
  • 34. BUILDING IMAGES INTERACTIVELY docker commit docker tag docker diff
  • 35. BUILDING IMAGES WITH A DOCKERFILE Dockerfile FROM centos ENV REFRESHED_AT 2015-06-11 RUN yum -y install wget Run docker build -t "bob/myimage" .
  • 36. INSPECTING CONTAINERS docker inspect presentation_pres_1 J '.[].Volumes' If you want to parse JSON from the shell, use JQ --format docker inspect --format '{{ json .Created }}' presentation_pres_1
  • 37. NETWORKING BASICS All based on port mapping private addresses (because of IPV4) -P --publish-all: will publish all exposed ports -p host:guest: manual allocation
  • 38. SO LET'S DO SOMETHING INTERESTING CROSS COMPILING A GO APP We'll download We'll compile and run your app We'll cross compile it for linux, windows and OS X golang images
  • 39. WORKING WITH VOLUMES Bypassing the copy-on-write system to obtain native disk I/O performance Bypassing copy-on-write to leave some files out of docker commit Sharing a directory between multiple containers Sharing a directory between the host and a container Sharing a single file between the host and a container
  • 40. VOLUMES IN A COMMAND docker run -d -v /var/lib/postgresql postgresql IN A DOCKERFILE Volume /var/lib/postgresql Volumes same performance an host I/O content is not included into a resulting image content can not be changed in a Dockerfile can be shared across containers exist independently of containers
  • 41. USE CASES You want to decide on your FS strategy (LVM, ZFS, BtrFS, ...) You have a separate disk with better performance (SSD) or resiliency (EBS) than the system disk, and you want to put important data on that disk You want to share a directory on your host with the container What happens when you remove containers? one container reference, last container orphan, /var/lib/docker
  • 42. LINKING CONTAINERS USING NAMES AND LINKS TO COMMUNICATE ACROSS CONTAINERS Benefit container isolation Drawback operationally challenging (ambassadors, overlay network) Wordpress: 2 containers linked
  • 43. DOCKER COMPOSE "BIG ASS" COMMANDS CAN BE REDUCED TO NOTHING wordpress: image: wordpress links: - db:mysql ports: - 8080:80 db: image: mysql environment: MYSQL_ROOT_PASSWORD: pass1234
  • 44. DOCKER HUB https://hub.docker.com/ push/pull/auto build (Github) public/private($) finding images/security
  • 45. SECURITY Do not expose the docker API! And ... do not expose the docker API! For good measue: do not expose the docker API! If you do: TLS!!! --privileged (full access) or --net host (sniff all traffic in and out of the host) There is more to it: containers don't contain, default user is root, use external tools (SELinux)
  • 46. TIP OF THE ICEBERG Now that you know more about docker, there is docker machine that lets you create docker hosts on VirtualBox, AWS ec2, Rackspace, ... There's docker Swarm that allows you to mange docker host ckusters, Fleet/etcd (CoreOS), Kubernetes (Google), Consul (Hashicorp), Mesos (Apache/Twitter), etc ... for orchestration. You've seen the tip of the iceberg ;)
  • 47. DOCKER MACHINE CREATE A DOCKER HOST WITH ONE COMMAND > dm create -d amazonec2 --amazonec2-access-key akey --amazonec2-instance-type t2.micro --amazonec2-region us-east-1 --amazonec2-secret-key asecretkey --amazonec2-vpc-id avpc dockerec2 > dm create -d virtualbox dev
  • 49. This presentation was done with using in a VM runnnig revealjs Docker Vagrant Centos 7
  • 50. You can download the presentation and the demos on Github