![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3590796/docker-logo.png)
D CKER
package once Deploy anywhere
Ouadie LAHDIOUI
IT Consultant @ SOAT
WHO's THIS GUY ?
@lahdiouiouadie
story time !
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3590444/DevAndOps.jpg)
*Image source : Devoops culture comic by DZone
This is how we maked agile delivery during 7 sprints
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3590447/DevOps.jpg)
*Image source : Devoops culture comic by DZone
This is OUR NEW FEATURE TEAM
Always the same reasons
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3590654/boom-copy.png)
WTF...It works fine for me !
WTF.... We haven't the same version of NodeJS !
Don't forget to do that on PPRD
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3590796/docker-logo.png)
D CKER
Wikipedia defines Docker as
An open-source project that automates the deployment of applications inside software containers...provides an additional layer of abstraction and automation of operating-system-level virtualization on Windows and Linux.
In simpler words
Docker is an open-source tool to build and deploy your distributed applications easily in a sandbox that can be run on any linux host later
(called container later)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/2899581/arrow-red-9.png)
CONTAINERS ! What are those ?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3592388/Container-PNG-HD.png)
Containers are like VMs !
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3589436/feh.gif)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3589367/vm.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3589369/container.jpg)
This is how VMs works
This is how actually containers works
Containers are
Created based on
Docker images
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3590919/docker-image.png)
This is your base image
This is a container
To run and distribute
Docker containers
YOU NEED
A Docker Daemon
DOCKER HOST
DOCKER DAEMON
DOCKER containers
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3592024/Container-PNG-HD.png)
Tensorflow
REDIS
CHATBOT
Web APP
To interact with the
docker daemon
you must have
a Docker Client
DOCKER HOST
DOCKER DAEMON
DOCKER containers
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3592024/Container-PNG-HD.png)
Tensorflow
REDIS
CHATBOT
Web APP
DOCKER client
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3592119/Console-128.png)
DOcker run | docker pull | ...
To CREATE YOUR OWN IMAGE
YOU SHOULD USE
Dockerfile
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3592183/image011.png)
FROM ubuntu
MAINTAINER Ouadie LAHDIOUI
RUN apt-get install -y software-properties-common python
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nodejs
#RUN apt-get install -y nodejs=0.6.12~dfsg1-1ubuntu1
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD ["/usr/bin/node", "/var/www/app.js"]
This is how A docker file looks like
Dockerfile itself inherits from another base image
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3592183/image011.png)
FROM ubuntu
MAINTAINER Ouadie LAHDIOUI
RUN apt-get install -y software-properties-common python
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nodejs
#RUN apt-get install -y nodejs=0.6.12~dfsg1-1ubuntu1
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD ["/usr/bin/node", "/var/www/app.js"]
DOCKER IMAGE
Inherit from
DOCKER IMAGE
DOCKER IMAGE
Inherit from
Inherit from
To SHARE YOUR DOCKER IMAGE ON THE CLOUD, YOU CAN USE
A PUBLIC/PRIVATE
DOCKER REGISTRY
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3592183/image011.png)
1) BUILD
DOCKER image
2) Publish
Registry
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3590770/DockerHub.png)
https://hub.docker.com
This is DOCKER HUB
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3590729/Docker-API-infographic-container-devops-nordic-apis.png)
Docker landscape
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3590215/24dc892.png)
Getting your hands dirty with Docker
live coding
CLONE THIS PROJECT FROM GITHUB
https://github.com/ouadie-lahdioui/docker-CHEATSHEET
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3590773/Octocat.png)
put some music on
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3590778/headphones-with-music-note_318-43350.jpg)
3...2...1...ROTI
Return on time invested
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3589553/hand0.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3589556/hand1.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3589558/hand2.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3589560/hand3.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3589563/hand4.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3589567/hand5.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/381089/images/3130966/Emoji_u1f609.svg.png)
If you loved Docker, let me know >
@lahdiouiouadie
Thank you for your attention
Docker : Package once, deploy anywhere
By Ouadie LAHDIOUI
Docker : Package once, deploy anywhere
Docker : Package once, run anywhere
- 1,577