SlideShare a Scribd company logo
1 of 47
Linux Containers and 
Dockers 
Quando, vantaggi e svantaggi 
Ciao 
ciao 
Vai a fare 
Dr. Fabio Fumarola 
ciao ciao
Contents 
• The Evolution of IT 
• The Solutions: Virtual Machines vs Vagrant vs Docker 
• Differences 
• Examples 
– Vagrant 
– Docker 
• P.S. CoreOS 
2
From 1995 to 2015 
3 
Client-Server 
App 
Well-defined stack: 
- O/S 
- Runtime 
- Middleware 
Monolithic 
Physical 
Infrastructure 
Thin app on mobile, 
tablet 
Assembled by 
developers using 
best available 
services 
Running on any 
available set of 
physical resources 
(public/private/ 
virtualized)
Static website 
User DB 
Redis + redis-sentinel 
Web frontend 
Queue Analytics DB 
Background workers 
API endpoint 
nginx 1.5 + modsecurity + openssl + bootstrap 
2 
postgresql + pgv8 + v8 
hadoop + hive + thrift + OpenJDK 
Ruby + Rails + sass + Unicorn 
Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv 
+ nodejs + phantomjs 
Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client 
Development VM 
QA server 
Public Cloud 
Disaster recovery 
Contributor’s laptop 
Production Servers 
2015 in Detail 
Production Cluster 
Customer Data Center 
4
Challenges 
• How to ensure that services interact consistently? 
• How to avoid to setup N different configurations and 
dependencies for each service? 
• How to migrate and scale quickly ensuring 
compatibility? 
• How to replicate my VM and services quickly? 
5
How to deal with different confs? 
6 
Static website 
Web frontend 
Background workers 
User DB 
Analytics DB 
Queue 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
? ? ? ? ? ? ? 
Development 
VM QA Server Single Prod 
Server Onsite Cluster Public Cloud Contributor’s 
laptop 
Customer 
Servers 
6
1. Virtual Machines 
7
Virtual Machines 
• Run on top of an Hypervisor 
Pros 
– fully virtualized OS 
– Totally isolated 
Cons 
– Needs to take a snapshot of 
the entire VM to replicate 
– Uses a lot of space 
– Slow to move around 
8 
App 
A 
Bins/ 
Libs 
Hypervisor 
Host OS 
Server 
Bins/ 
Libs 
Guest 
OS 
App 
A’ 
Guest 
OS 
App 
B 
Bins/ 
Libs 
Guest 
OS 
Guest 
OS 
Guest 
OS 
VM
Hypervisors Trend 
2011 
– XEN: Default choice given Rackspace and Amazon use 
– KVM: Bleeding edge users 
2012 
– KVM: Emerges as the lead 
– XEN: Loses momentum 
9
Hipervisors Trend 
2013 
– KVM: Maintains lead (around 90%+ for Mirantis) 
– Vmware: Emerges as a surprising second choice 
– Containers (LXC, Parallels, Docker): Web Hosting and SAS 
focused 
– Xen and HyperV: Infrequent requests (XenServer.org) 
2014 – 2015 
– ??? 
10
2. Vagrant 
11
Vagrant 
• Open source VM manager released in 2010 
• It allows you to script and package VMs config and 
the provisioning setup via a VagrantFile 
• It is designed to run on top of almost any VM tool: 
VirtualBox, VMVare, AWS, OpenStack1 
• It can be used together with provisioning tools such 
as shell scripts, Chef and Puppet. 
12 
1. https://github.com/cloudbau/vagrant-openstack-plugin
Vagrant: idea 
Use a VagrantFile to install 
1.an operating system 
2.Required libraries and 
software 
and finally run programs and 
processes of your final 
application 
13
Vagrant: Feature 
• Command-Line Interface 
• Vagrant Share 
• VagrantFile 
• Boxes 
• Provisioning 
• Networking 
• Synced Folders 
• Multi-Machine 
• Providers 
• Plugins 
14 
https://www.vagrantup.com/downloads
Vagrant: Demo 
• It allows us to interact with Vagrant 
• It offers the following commands: box, connect, 
destroy, halt, init, login, package a vm, rdp, … 
https://docs.vagrantup.com/v2/cli/index.html 
15
Vagrant Example 
1. Download and install VirtualBox and Vagrant 
1. This will place a VagrantFile in the directory 
2. Install a Box 
3. Using a Box -> https://vagrantcloud.com/ 
16 
$ mkdir vagrant_first_vm && cd vagrant_first_vm 
$ vagrant init 
$ vagrant box add ubuntu/trusty64 
Vagrant.configure("2") do |config| 
config.vm.box = "ubuntu/trusty64" 
end
Vagran: Start 
1. Start the box 
2. Login into the vm 
3. You can destroy the vm by 
17 
$ vagrant up 
$ vagrant ssh 
$ vagrant destroy
Vagrant: Synced Folders 
• By default, it shares your project directory to the /vagrant 
directory on the guest machine. 
• If you create a file on your gues os the file will be on the 
vagrant vm. 
18 
$ vagrant up 
$ vagrant ssh 
$ ls /vagrant 
--Vagrantfile 
$ touch pippo.txt 
$vagrant ssh 
$ls /vagrant/
Vagrant: Provisioning 
• Let’s install Apache via a boostrap.sh file 
• If you create a file on your gues os the file will be on the 
vagrant vm. (vagrant reload --provision) 
19 
#!/usr/bin/env bash 
apt-get update 
apt-get install -y apache2 
rm -rf /var/www 
ln -fs /vagrant /var/www 
Vagrant.configure("2") do |config| 
config.vm.box = "hashicorp/precise32" 
config.vm.provision :shell, path: "bootstrap.sh" 
end
Vagrant: Networking 
• Port Forwarding: llows you to specify ports on the guest 
machine to share via a port on the host machine 
• By running vagrant reload or vagrant up we can see on 
http://127.0.0.1:4567 our apache 
• It supports also bridge configurations and other 
configurations (https://docs.vagrantup.com/v2/networking/) 
20 
Vagrant.configure("2") do |config| 
config.vm.box = "hashicorp/precise32" 
config.vm.provision :shell, path: "bootstrap.sh" 
config.vm.network :forwarded_port, host: 4567, guest: 80 
end
Vagrant: Share and Provider 
• It is possible to share Vagrant box via vagrant cloud (but?) 
Providers 
• By default Vagrant is configured with VirtualBox but you can 
change the provider 
• How? 
21 
$ vagrant up --provider=vmware_fusion 
$ vagrant up --provider=aws 
$ vagrant plugin install vagrant-aws
Vagrant: AWS Vagrantfile 
22 
Vagrant.configure("2") do |config| 
# config.vm.box = "sean" 
config.vm.provider :aws do |aws, override| 
aws.access_key_id = "AAAAIIIIYYYY4444AAAA” 
aws.secret_access_key = 
"c344441LooLLU322223526IabcdeQL12E34At3mm” 
aws.keypair_name = "iheavy" 
aws.ami = "ami-7747d01e" 
override.ssh.username = "ubuntu" 
override.ssh.private_key_path = "/var/root/iheavy_aws/pk- 
XHHHHHMMMAABPEDEFGHOAOJH1QBH5324.pem" 
end 
end
3. Docker 
23
Quick Survey 
• How many people have heard of Docker before this 
Seminar? 
• How many people have tried Docker ? 
• How many people are using Docker in production ? 
24
What is Docker? 
“Docker is an open-source engine to easily create 
lightweight, portable, self-sufficient containers from 
any application. The same container that a developer 
builds and test on a laptop can run at scale, in 
production, on VMs, OpenStack cluster, public clouds 
and more.” 
Docker.io 
25
Docker in simple words 
• It is a technology that allow you running applications 
inside containers (not VM) 
• This assures that libraries and package needed by the 
application you run are always the same. 
• This means you can make a container for Memcache 
and another for Redis and they will work the same in 
any OS (also in Vagrant). 
26
How does docker work? 
• LinuX Containers (LXC) 
• Control Groups & Namespaces (CGroups) 
• AUFS 
• Client – Server with an HTTP API 
27
LXC- Linux Containers 
• It is a user-space interface for the Linux kernel containment 
features 
• Through a powerful API and simple tools, it lets Linux users easily 
create and manage system or application containers. 
• Currently LXC can apply the following kernel features to contain 
processes: 
– Kernel namespaces (ipc, uts, mount, pid, network and user) 
– Apparmor and SELinux profiles 
– Seccomp policies 
– Chroots (using pivot_root) 
– Kernel capabilities & Control groups (cgroups) 
28
cgroups 
• Control groups is a Linux kernel feature to limit, account and 
isolate resource usage (CPU, memory, disk I/O, etc) of process 
groups. 
• Features: 
– Resource limitation: limit CPU, memory… 
– Prioritization: assign more CPU etc to some groups. 
– Accounting: to measure the resource usage. 
– Control: freezing groups or check-pointing and restarting. 
29
LCX based Containers 
• It allows us to run a Linux system within another Linux system. 
• A container is a group of processes on a Linux box, put together 
is an isolated environment. 
30 
App A’ 
Docker Engine 
Host OS 
Server 
App A 
Bins/Libs 
Bins/Libs 
App B 
App B’ 
App B’ 
App B’ 
App B’ 
Container 
• From the inside it looks like a VM 
• From the outside, it looks like normal 
processes
Docker Features 
• VE (Virtual Environments) based on LXC 
• Portable deployment across machines 
• Versioning: docker include git-like capabilities for tracking 
versions of a container 
• Component reuse: it allows building or stacking already 
created packages. You can create ‘base images’ and then 
running more machine based on the image. 
• Shared libraries: there is a public repository with several 
images (https://registry.hub.docker.com/) 
31
Why are Docker Containers lightweight? 
32 
App 
A 
Bins 
/ 
Libs 
Original App 
(No OS to take 
up space, resources, 
or require restart) 
App Δ 
Bins/ 
App 
A 
Bins/ 
Libs 
App 
A’ 
Bins/ 
Libs 
Gues 
t 
OS 
Modified App 
Union file system allows 
us to only save the diffs 
Between container A 
and container A’ 
VMs 
App 
A 
Bins/ 
Libs 
Gues 
t 
OS 
App 
A 
Copy of 
App 
No OS. Can 
Share bins/libs 
Gues 
t 
OS 
Gues 
t 
OS 
Containers
Docker Installation Ubuntu 
• AUFS support 
• Add docker repo 
• Install 
33 
$ sudo apt-get update 
$ sudo apt-get intall linux-image-extra-`uname –r` 
sudo sh –c “curl https://get.docker.io/gpg | apt-key add -” 
sudo sh –c “echo deb http://get.docker.io/ubuntu docker  
main > /etc/apt/sources.list.d/docker.list” 
$> sudo apt-get update 
$> sudo apt-get install lxc-docker
Docker Installation Vagrant 
• Clone the docker repository 
• Startup the vagrant image 
• SSH into the image 
• Docker client works normally 
34 
$ git clone https://github.com/dotcloud/docker.git 
$ vagrant up 
$ vagrant ssh
Base Commands 
35
Docker: hello world 
• Get one base image 
• List images on your system 
• Print hello world 
36 
$ docker pull ubuntu 
$ docker run ubuntu:12.10 echo “hello world”
Detached mode 
• Run in Docker using the detached flag (-d) 
• Get the container’s id 
• Attach to the container 
• Stop/Start/Restart the container 
37 
$ docker run –d ubuntu sh –c “while true; do echo hello 
world; sleep 1; done” 
$ docker attach <container id> 
$ docker stop <container id>
Public Index & Network 
• Pull an apache image from the public repo 
• Run the image and check the ports 
$ docker run –d creack/apache2 
$ docker ps 
• Expose public ports 
38 
$ docker search apache 
$ docker pull creack/apache2 
$ docker run –d –p 8888:80 –p 4444:43 creack/apache2 
$docker ps
Using Docker: the interactive way 
39 
$ docker run –i –t ubuntu bash 
root@82fdsfs4885:/# 
root@82fdsfs4885:/# apt-get update 
root@82fdsfs4885:/# apt-get install memcached 
root@82fdsfs4885:/# exit 
•Commit the Image 
$ docker commit `docker ps –q –l` user/memcached 
•Start the image 
$ docker crun –d –p 11211 –u daemon user/memcached memcached
Docker: app using scripts 
• Write a Dockerfile 
• Build and Start the image 
40 
# Memcached 
FROM ubuntu 
MAINTAINER Fabio Fumarola 
RUN apt-get update 
RUN apt-get install –y memcached 
ENTRYPOINT [“memcached”] 
USER daemon 
EXPOSE 11211 
$ docker build –t=fabio/memcached 
$ docker run –d fabio/memcached memcached
Other Commands 
• Docker cp: copy a file from container to host 
• Docker diff: print container changes 
• Docker top: display running processes in a container 
• Docker rm /rmi: delete container/image 
• Docker wait: wait until container stop and print exit code 
More on: http://docs.docker.io/en/latest/commandline/cli 
41
Docker vs Vagrant? 
• Less memory for Dockers w.r.t VMs 
• With a VM you get more isolation, but is much heavier. 
Indeed you can run 1000 of Dockers in a machine but not 
thousand of VMs with Xen. 
• A VM requires minutes to start a Docker seconds 
There are pros and cons for each type. 
• If you want full isolation with guaranteed resources a full VM 
is the way to go. 
• If you want hundred of isolate processes into a reasonably 
sized host then Docker might be the best solution 
42
Core OS 
43
CoreOS 
• A minimal operating system 
• Painless updating: utilizes active/passive scheme to update 
the OS as single unit instead of package by package. 
• Docker container 
• Clustered by default 
• Distributed System tools: etcd key-value store 
• Service discovery: easily locate where service are running in 
the cluster 
• High availability and automatic fail-over 
44
CoreOS 
45 
Clustered by default 
High availability and a 
utomatic fail-over
Docker with CoreOS 
Features 
•Automatically runs on each CoreOS 
machine 
•Updated with regular automatic OS 
updates 
•Integrates with etcd 
•Networking automatically configured 
Example Akka cluster + Docker + CoreOS 
https://github.com/dennybritz/akka-cluster- 
deploy 
46
References 
• http://www.iheavy.com/2014/01/16/how-to-deploy-on-amazon-ec2- 
with-vagrant/ 
• https://docs.vagrantup.com/v2/ 
• Vagrant: Up and Running Paperback – June 15, 2013 
• https://github.com/patrickdlee/vagrant-examples 
• https://linuxcontainers.org/ LXC 
• https://www.kernel.org/doc/Documentation/cgroups/ 
• http://lamejournal.com/2014/09/19/vagrant-vs-docker-osx-tales-front/ 
• https://medium.com/@_marcos_otero/docker-vs-vagrant-582135beb623 
• https://coreos.com/using-coreos/docker/ 
47

More Related Content

What's hot

virtualization-vs-containerization-paas
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paasrajdeep
 
Best Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker ContainersBest Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker ContainersBlueData, Inc.
 
Docker and Kubernetes 101 workshop
Docker and Kubernetes 101 workshopDocker and Kubernetes 101 workshop
Docker and Kubernetes 101 workshopSathish VJ
 
Shifter: Containers in HPC Environments
Shifter: Containers in HPC EnvironmentsShifter: Containers in HPC Environments
Shifter: Containers in HPC Environmentsinside-BigData.com
 
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...Yahoo Developer Network
 
Docker HK Meetup - 201707
Docker HK Meetup - 201707Docker HK Meetup - 201707
Docker HK Meetup - 201707Clarence Ho
 
Productionizing Spark and the Spark Job Server
Productionizing Spark and the Spark Job ServerProductionizing Spark and the Spark Job Server
Productionizing Spark and the Spark Job ServerEvan Chan
 
Lessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersLessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersBlueData, Inc.
 
Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview Thomas Chacko
 
BDM32: AdamCloud Project - Part II
BDM32: AdamCloud Project - Part IIBDM32: AdamCloud Project - Part II
BDM32: AdamCloud Project - Part IIDavid Lauzon
 
An Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersAn Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersKento Aoyama
 
CBlocks - Posix compliant files systems for HDFS
CBlocks - Posix compliant files systems for HDFSCBlocks - Posix compliant files systems for HDFS
CBlocks - Posix compliant files systems for HDFSDataWorks Summit
 
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hairRENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hairJohn Constable
 
Running the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerRunning the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerGuido Schmutz
 
Cgroups, namespaces and beyond: what are containers made from?
Cgroups, namespaces and beyond: what are containers made from?Cgroups, namespaces and beyond: what are containers made from?
Cgroups, namespaces and beyond: what are containers made from?Docker, Inc.
 
Kubernetes presentation
Kubernetes presentationKubernetes presentation
Kubernetes presentationGauranG Bajpai
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaJoe Stein
 
The architecture of oak
The architecture of oakThe architecture of oak
The architecture of oakMichael Dürig
 
Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...
Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...
Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...StreamNative
 
Optimizing, profiling and deploying high performance Spark ML and TensorFlow ...
Optimizing, profiling and deploying high performance Spark ML and TensorFlow ...Optimizing, profiling and deploying high performance Spark ML and TensorFlow ...
Optimizing, profiling and deploying high performance Spark ML and TensorFlow ...DataWorks Summit
 

What's hot (20)

virtualization-vs-containerization-paas
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paas
 
Best Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker ContainersBest Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker Containers
 
Docker and Kubernetes 101 workshop
Docker and Kubernetes 101 workshopDocker and Kubernetes 101 workshop
Docker and Kubernetes 101 workshop
 
Shifter: Containers in HPC Environments
Shifter: Containers in HPC EnvironmentsShifter: Containers in HPC Environments
Shifter: Containers in HPC Environments
 
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...
 
Docker HK Meetup - 201707
Docker HK Meetup - 201707Docker HK Meetup - 201707
Docker HK Meetup - 201707
 
Productionizing Spark and the Spark Job Server
Productionizing Spark and the Spark Job ServerProductionizing Spark and the Spark Job Server
Productionizing Spark and the Spark Job Server
 
Lessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersLessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker Containers
 
Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview
 
BDM32: AdamCloud Project - Part II
BDM32: AdamCloud Project - Part IIBDM32: AdamCloud Project - Part II
BDM32: AdamCloud Project - Part II
 
An Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersAn Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux Containers
 
CBlocks - Posix compliant files systems for HDFS
CBlocks - Posix compliant files systems for HDFSCBlocks - Posix compliant files systems for HDFS
CBlocks - Posix compliant files systems for HDFS
 
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hairRENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
 
Running the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerRunning the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker Container
 
Cgroups, namespaces and beyond: what are containers made from?
Cgroups, namespaces and beyond: what are containers made from?Cgroups, namespaces and beyond: what are containers made from?
Cgroups, namespaces and beyond: what are containers made from?
 
Kubernetes presentation
Kubernetes presentationKubernetes presentation
Kubernetes presentation
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
 
The architecture of oak
The architecture of oakThe architecture of oak
The architecture of oak
 
Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...
Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...
Introducing HerdDB - a distributed JVM embeddable database built upon Apache ...
 
Optimizing, profiling and deploying high performance Spark ML and TensorFlow ...
Optimizing, profiling and deploying high performance Spark ML and TensorFlow ...Optimizing, profiling and deploying high performance Spark ML and TensorFlow ...
Optimizing, profiling and deploying high performance Spark ML and TensorFlow ...
 

Similar to Linux containers and docker

Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and dockerFabio Fumarola
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Arun prasath
 
Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015Mustafa AKIN
 
DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2Vincent Mercier
 
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...Patrick Chanezon
 
Docker module 1
Docker module 1Docker module 1
Docker module 1Liang Bo
 
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
 
Containing the world with Docker
Containing the world with DockerContaining the world with Docker
Containing the world with DockerGiuseppe Piccolo
 
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on AzureDocker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on AzurePatrick Chanezon
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemVan Phuc
 
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
 
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure Patrick Chanezon
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deploymentjavaonfly
 
Dockerization of Azure Platform
Dockerization of Azure PlatformDockerization of Azure Platform
Dockerization of Azure Platformnirajrules
 
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
 
Docker intro
Docker introDocker intro
Docker introspiddy
 
Evolution of Linux Containerization
Evolution of Linux Containerization Evolution of Linux Containerization
Evolution of Linux Containerization WSO2
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationImesh Gunaratne
 

Similar to Linux containers and docker (20)

Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
Docker-v3.pdf
Docker-v3.pdfDocker-v3.pdf
Docker-v3.pdf
 
Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015
 
DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2
 
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
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
 
Containing the world with Docker
Containing the world with DockerContaining the world with Docker
Containing the world with Docker
 
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on AzureDocker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
 
Dockers zero to hero
Dockers zero to heroDockers zero to hero
Dockers zero to hero
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
 
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
 
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
Dockerization of Azure Platform
Dockerization of Azure PlatformDockerization of Azure Platform
Dockerization of Azure Platform
 
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
 
Docker intro
Docker introDocker intro
Docker intro
 
Evolution of Linux Containerization
Evolution of Linux Containerization Evolution of Linux Containerization
Evolution of Linux Containerization
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container Virtualization
 

More from Fabio Fumarola

11. From Hadoop to Spark 2/2
11. From Hadoop to Spark 2/211. From Hadoop to Spark 2/2
11. From Hadoop to Spark 2/2Fabio Fumarola
 
11. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:211. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:2Fabio Fumarola
 
10b. Graph Databases Lab
10b. Graph Databases Lab10b. Graph Databases Lab
10b. Graph Databases LabFabio Fumarola
 
9b. Document-Oriented Databases lab
9b. Document-Oriented Databases lab9b. Document-Oriented Databases lab
9b. Document-Oriented Databases labFabio Fumarola
 
9. Document Oriented Databases
9. Document Oriented Databases9. Document Oriented Databases
9. Document Oriented DatabasesFabio Fumarola
 
8b. Column Oriented Databases Lab
8b. Column Oriented Databases Lab8b. Column Oriented Databases Lab
8b. Column Oriented Databases LabFabio Fumarola
 
8a. How To Setup HBase with Docker
8a. How To Setup HBase with Docker8a. How To Setup HBase with Docker
8a. How To Setup HBase with DockerFabio Fumarola
 
8. column oriented databases
8. column oriented databases8. column oriented databases
8. column oriented databasesFabio Fumarola
 
8. key value databases laboratory
8. key value databases laboratory 8. key value databases laboratory
8. key value databases laboratory Fabio Fumarola
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In DepthFabio Fumarola
 
6 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/26 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/2Fabio Fumarola
 
5 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/25 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/2Fabio Fumarola
 
1. Introduction to the Course "Designing Data Bases with Advanced Data Models...
1. Introduction to the Course "Designing Data Bases with Advanced Data Models...1. Introduction to the Course "Designing Data Bases with Advanced Data Models...
1. Introduction to the Course "Designing Data Bases with Advanced Data Models...Fabio Fumarola
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbtFabio Fumarola
 
A Parallel Algorithm for Approximate Frequent Itemset Mining using MapReduce
A Parallel Algorithm for Approximate Frequent Itemset Mining using MapReduce A Parallel Algorithm for Approximate Frequent Itemset Mining using MapReduce
A Parallel Algorithm for Approximate Frequent Itemset Mining using MapReduce Fabio Fumarola
 
NoSQL databases pros and cons
NoSQL databases pros and consNoSQL databases pros and cons
NoSQL databases pros and consFabio Fumarola
 

More from Fabio Fumarola (20)

11. From Hadoop to Spark 2/2
11. From Hadoop to Spark 2/211. From Hadoop to Spark 2/2
11. From Hadoop to Spark 2/2
 
11. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:211. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:2
 
10b. Graph Databases Lab
10b. Graph Databases Lab10b. Graph Databases Lab
10b. Graph Databases Lab
 
10. Graph Databases
10. Graph Databases10. Graph Databases
10. Graph Databases
 
9b. Document-Oriented Databases lab
9b. Document-Oriented Databases lab9b. Document-Oriented Databases lab
9b. Document-Oriented Databases lab
 
9. Document Oriented Databases
9. Document Oriented Databases9. Document Oriented Databases
9. Document Oriented Databases
 
8b. Column Oriented Databases Lab
8b. Column Oriented Databases Lab8b. Column Oriented Databases Lab
8b. Column Oriented Databases Lab
 
8a. How To Setup HBase with Docker
8a. How To Setup HBase with Docker8a. How To Setup HBase with Docker
8a. How To Setup HBase with Docker
 
8. column oriented databases
8. column oriented databases8. column oriented databases
8. column oriented databases
 
8. key value databases laboratory
8. key value databases laboratory 8. key value databases laboratory
8. key value databases laboratory
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth
 
6 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/26 Data Modeling for NoSQL 2/2
6 Data Modeling for NoSQL 2/2
 
5 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/25 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/2
 
1. Introduction to the Course "Designing Data Bases with Advanced Data Models...
1. Introduction to the Course "Designing Data Bases with Advanced Data Models...1. Introduction to the Course "Designing Data Bases with Advanced Data Models...
1. Introduction to the Course "Designing Data Bases with Advanced Data Models...
 
Scala and spark
Scala and sparkScala and spark
Scala and spark
 
Hbase an introduction
Hbase an introductionHbase an introduction
Hbase an introduction
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbt
 
08 datasets
08 datasets08 datasets
08 datasets
 
A Parallel Algorithm for Approximate Frequent Itemset Mining using MapReduce
A Parallel Algorithm for Approximate Frequent Itemset Mining using MapReduce A Parallel Algorithm for Approximate Frequent Itemset Mining using MapReduce
A Parallel Algorithm for Approximate Frequent Itemset Mining using MapReduce
 
NoSQL databases pros and cons
NoSQL databases pros and consNoSQL databases pros and cons
NoSQL databases pros and cons
 

Recently uploaded

Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxchumtiyababu
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesRAJNEESHKUMAR341697
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxNadaHaitham1
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.Kamal Acharya
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdfAldoGarca30
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdfKamal Acharya
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdfKamal Acharya
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...Amil baba
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiessarkmank1
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxJuliansyahHarahap1
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxSCMS School of Architecture
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Servicemeghakumariji156
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilVinayVitekari
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VDineshKumar4165
 
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxOrlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxMuhammadAsimMuhammad6
 

Recently uploaded (20)

Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planes
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxOrlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
 

Linux containers and docker

  • 1. Linux Containers and Dockers Quando, vantaggi e svantaggi Ciao ciao Vai a fare Dr. Fabio Fumarola ciao ciao
  • 2. Contents • The Evolution of IT • The Solutions: Virtual Machines vs Vagrant vs Docker • Differences • Examples – Vagrant – Docker • P.S. CoreOS 2
  • 3. From 1995 to 2015 3 Client-Server App Well-defined stack: - O/S - Runtime - Middleware Monolithic Physical Infrastructure Thin app on mobile, tablet Assembled by developers using best available services Running on any available set of physical resources (public/private/ virtualized)
  • 4. Static website User DB Redis + redis-sentinel Web frontend Queue Analytics DB Background workers API endpoint nginx 1.5 + modsecurity + openssl + bootstrap 2 postgresql + pgv8 + v8 hadoop + hive + thrift + OpenJDK Ruby + Rails + sass + Unicorn Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud Disaster recovery Contributor’s laptop Production Servers 2015 in Detail Production Cluster Customer Data Center 4
  • 5. Challenges • How to ensure that services interact consistently? • How to avoid to setup N different configurations and dependencies for each service? • How to migrate and scale quickly ensuring compatibility? • How to replicate my VM and services quickly? 5
  • 6. How to deal with different confs? 6 Static website Web frontend Background workers User DB Analytics DB Queue ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Development VM QA Server Single Prod Server Onsite Cluster Public Cloud Contributor’s laptop Customer Servers 6
  • 8. Virtual Machines • Run on top of an Hypervisor Pros – fully virtualized OS – Totally isolated Cons – Needs to take a snapshot of the entire VM to replicate – Uses a lot of space – Slow to move around 8 App A Bins/ Libs Hypervisor Host OS Server Bins/ Libs Guest OS App A’ Guest OS App B Bins/ Libs Guest OS Guest OS Guest OS VM
  • 9. Hypervisors Trend 2011 – XEN: Default choice given Rackspace and Amazon use – KVM: Bleeding edge users 2012 – KVM: Emerges as the lead – XEN: Loses momentum 9
  • 10. Hipervisors Trend 2013 – KVM: Maintains lead (around 90%+ for Mirantis) – Vmware: Emerges as a surprising second choice – Containers (LXC, Parallels, Docker): Web Hosting and SAS focused – Xen and HyperV: Infrequent requests (XenServer.org) 2014 – 2015 – ??? 10
  • 12. Vagrant • Open source VM manager released in 2010 • It allows you to script and package VMs config and the provisioning setup via a VagrantFile • It is designed to run on top of almost any VM tool: VirtualBox, VMVare, AWS, OpenStack1 • It can be used together with provisioning tools such as shell scripts, Chef and Puppet. 12 1. https://github.com/cloudbau/vagrant-openstack-plugin
  • 13. Vagrant: idea Use a VagrantFile to install 1.an operating system 2.Required libraries and software and finally run programs and processes of your final application 13
  • 14. Vagrant: Feature • Command-Line Interface • Vagrant Share • VagrantFile • Boxes • Provisioning • Networking • Synced Folders • Multi-Machine • Providers • Plugins 14 https://www.vagrantup.com/downloads
  • 15. Vagrant: Demo • It allows us to interact with Vagrant • It offers the following commands: box, connect, destroy, halt, init, login, package a vm, rdp, … https://docs.vagrantup.com/v2/cli/index.html 15
  • 16. Vagrant Example 1. Download and install VirtualBox and Vagrant 1. This will place a VagrantFile in the directory 2. Install a Box 3. Using a Box -> https://vagrantcloud.com/ 16 $ mkdir vagrant_first_vm && cd vagrant_first_vm $ vagrant init $ vagrant box add ubuntu/trusty64 Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty64" end
  • 17. Vagran: Start 1. Start the box 2. Login into the vm 3. You can destroy the vm by 17 $ vagrant up $ vagrant ssh $ vagrant destroy
  • 18. Vagrant: Synced Folders • By default, it shares your project directory to the /vagrant directory on the guest machine. • If you create a file on your gues os the file will be on the vagrant vm. 18 $ vagrant up $ vagrant ssh $ ls /vagrant --Vagrantfile $ touch pippo.txt $vagrant ssh $ls /vagrant/
  • 19. Vagrant: Provisioning • Let’s install Apache via a boostrap.sh file • If you create a file on your gues os the file will be on the vagrant vm. (vagrant reload --provision) 19 #!/usr/bin/env bash apt-get update apt-get install -y apache2 rm -rf /var/www ln -fs /vagrant /var/www Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise32" config.vm.provision :shell, path: "bootstrap.sh" end
  • 20. Vagrant: Networking • Port Forwarding: llows you to specify ports on the guest machine to share via a port on the host machine • By running vagrant reload or vagrant up we can see on http://127.0.0.1:4567 our apache • It supports also bridge configurations and other configurations (https://docs.vagrantup.com/v2/networking/) 20 Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise32" config.vm.provision :shell, path: "bootstrap.sh" config.vm.network :forwarded_port, host: 4567, guest: 80 end
  • 21. Vagrant: Share and Provider • It is possible to share Vagrant box via vagrant cloud (but?) Providers • By default Vagrant is configured with VirtualBox but you can change the provider • How? 21 $ vagrant up --provider=vmware_fusion $ vagrant up --provider=aws $ vagrant plugin install vagrant-aws
  • 22. Vagrant: AWS Vagrantfile 22 Vagrant.configure("2") do |config| # config.vm.box = "sean" config.vm.provider :aws do |aws, override| aws.access_key_id = "AAAAIIIIYYYY4444AAAA” aws.secret_access_key = "c344441LooLLU322223526IabcdeQL12E34At3mm” aws.keypair_name = "iheavy" aws.ami = "ami-7747d01e" override.ssh.username = "ubuntu" override.ssh.private_key_path = "/var/root/iheavy_aws/pk- XHHHHHMMMAABPEDEFGHOAOJH1QBH5324.pem" end end
  • 24. Quick Survey • How many people have heard of Docker before this Seminar? • How many people have tried Docker ? • How many people are using Docker in production ? 24
  • 25. What is Docker? “Docker is an open-source engine to easily create lightweight, portable, self-sufficient containers from any application. The same container that a developer builds and test on a laptop can run at scale, in production, on VMs, OpenStack cluster, public clouds and more.” Docker.io 25
  • 26. Docker in simple words • It is a technology that allow you running applications inside containers (not VM) • This assures that libraries and package needed by the application you run are always the same. • This means you can make a container for Memcache and another for Redis and they will work the same in any OS (also in Vagrant). 26
  • 27. How does docker work? • LinuX Containers (LXC) • Control Groups & Namespaces (CGroups) • AUFS • Client – Server with an HTTP API 27
  • 28. LXC- Linux Containers • It is a user-space interface for the Linux kernel containment features • Through a powerful API and simple tools, it lets Linux users easily create and manage system or application containers. • Currently LXC can apply the following kernel features to contain processes: – Kernel namespaces (ipc, uts, mount, pid, network and user) – Apparmor and SELinux profiles – Seccomp policies – Chroots (using pivot_root) – Kernel capabilities & Control groups (cgroups) 28
  • 29. cgroups • Control groups is a Linux kernel feature to limit, account and isolate resource usage (CPU, memory, disk I/O, etc) of process groups. • Features: – Resource limitation: limit CPU, memory… – Prioritization: assign more CPU etc to some groups. – Accounting: to measure the resource usage. – Control: freezing groups or check-pointing and restarting. 29
  • 30. LCX based Containers • It allows us to run a Linux system within another Linux system. • A container is a group of processes on a Linux box, put together is an isolated environment. 30 App A’ Docker Engine Host OS Server App A Bins/Libs Bins/Libs App B App B’ App B’ App B’ App B’ Container • From the inside it looks like a VM • From the outside, it looks like normal processes
  • 31. Docker Features • VE (Virtual Environments) based on LXC • Portable deployment across machines • Versioning: docker include git-like capabilities for tracking versions of a container • Component reuse: it allows building or stacking already created packages. You can create ‘base images’ and then running more machine based on the image. • Shared libraries: there is a public repository with several images (https://registry.hub.docker.com/) 31
  • 32. Why are Docker Containers lightweight? 32 App A Bins / Libs Original App (No OS to take up space, resources, or require restart) App Δ Bins/ App A Bins/ Libs App A’ Bins/ Libs Gues t OS Modified App Union file system allows us to only save the diffs Between container A and container A’ VMs App A Bins/ Libs Gues t OS App A Copy of App No OS. Can Share bins/libs Gues t OS Gues t OS Containers
  • 33. Docker Installation Ubuntu • AUFS support • Add docker repo • Install 33 $ sudo apt-get update $ sudo apt-get intall linux-image-extra-`uname –r` sudo sh –c “curl https://get.docker.io/gpg | apt-key add -” sudo sh –c “echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list” $> sudo apt-get update $> sudo apt-get install lxc-docker
  • 34. Docker Installation Vagrant • Clone the docker repository • Startup the vagrant image • SSH into the image • Docker client works normally 34 $ git clone https://github.com/dotcloud/docker.git $ vagrant up $ vagrant ssh
  • 36. Docker: hello world • Get one base image • List images on your system • Print hello world 36 $ docker pull ubuntu $ docker run ubuntu:12.10 echo “hello world”
  • 37. Detached mode • Run in Docker using the detached flag (-d) • Get the container’s id • Attach to the container • Stop/Start/Restart the container 37 $ docker run –d ubuntu sh –c “while true; do echo hello world; sleep 1; done” $ docker attach <container id> $ docker stop <container id>
  • 38. Public Index & Network • Pull an apache image from the public repo • Run the image and check the ports $ docker run –d creack/apache2 $ docker ps • Expose public ports 38 $ docker search apache $ docker pull creack/apache2 $ docker run –d –p 8888:80 –p 4444:43 creack/apache2 $docker ps
  • 39. Using Docker: the interactive way 39 $ docker run –i –t ubuntu bash root@82fdsfs4885:/# root@82fdsfs4885:/# apt-get update root@82fdsfs4885:/# apt-get install memcached root@82fdsfs4885:/# exit •Commit the Image $ docker commit `docker ps –q –l` user/memcached •Start the image $ docker crun –d –p 11211 –u daemon user/memcached memcached
  • 40. Docker: app using scripts • Write a Dockerfile • Build and Start the image 40 # Memcached FROM ubuntu MAINTAINER Fabio Fumarola RUN apt-get update RUN apt-get install –y memcached ENTRYPOINT [“memcached”] USER daemon EXPOSE 11211 $ docker build –t=fabio/memcached $ docker run –d fabio/memcached memcached
  • 41. Other Commands • Docker cp: copy a file from container to host • Docker diff: print container changes • Docker top: display running processes in a container • Docker rm /rmi: delete container/image • Docker wait: wait until container stop and print exit code More on: http://docs.docker.io/en/latest/commandline/cli 41
  • 42. Docker vs Vagrant? • Less memory for Dockers w.r.t VMs • With a VM you get more isolation, but is much heavier. Indeed you can run 1000 of Dockers in a machine but not thousand of VMs with Xen. • A VM requires minutes to start a Docker seconds There are pros and cons for each type. • If you want full isolation with guaranteed resources a full VM is the way to go. • If you want hundred of isolate processes into a reasonably sized host then Docker might be the best solution 42
  • 44. CoreOS • A minimal operating system • Painless updating: utilizes active/passive scheme to update the OS as single unit instead of package by package. • Docker container • Clustered by default • Distributed System tools: etcd key-value store • Service discovery: easily locate where service are running in the cluster • High availability and automatic fail-over 44
  • 45. CoreOS 45 Clustered by default High availability and a utomatic fail-over
  • 46. Docker with CoreOS Features •Automatically runs on each CoreOS machine •Updated with regular automatic OS updates •Integrates with etcd •Networking automatically configured Example Akka cluster + Docker + CoreOS https://github.com/dennybritz/akka-cluster- deploy 46
  • 47. References • http://www.iheavy.com/2014/01/16/how-to-deploy-on-amazon-ec2- with-vagrant/ • https://docs.vagrantup.com/v2/ • Vagrant: Up and Running Paperback – June 15, 2013 • https://github.com/patrickdlee/vagrant-examples • https://linuxcontainers.org/ LXC • https://www.kernel.org/doc/Documentation/cgroups/ • http://lamejournal.com/2014/09/19/vagrant-vs-docker-osx-tales-front/ • https://medium.com/@_marcos_otero/docker-vs-vagrant-582135beb623 • https://coreos.com/using-coreos/docker/ 47

Editor's Notes

  1. CoreOS