2. About me
Fathi Jemli
● Software engineer @ Proxym-IT
● DevOps and Big Data enthusiast
Em@il: jemlifathi2013@gmail.com Twitter: @jemlifathi
3. 2017 Trends
● Microservices
● Cloud Computing
● Server less development
● Environment independent development
● Analytics
● Big Data
● DevOps: CI/CD, Automation, Monitoring, etc.
8. You have to take into consideration
● Technologies requirements
● Compatibility
● Portability: build once, run everywhere
● Keeping your system clean and healthy
● Performance
11. What We Need
A solution to run each technology on its own environment, without worrying about its
compatibility, test, integration and portability.
13. What Are Containers
● Container is a standard format
● Operating System virtualization
● Isolated user space instances in term of process and file system
● Shares host Linux kernel
● Easily portable across environment
● Packages up software binaries and dependencies
15. Docker in 2013
A lightweight runtime and robust tooling to build and run
virtual containers on Linux to create the operating environment
for your distributed applications.
16. Docker in 2017
A Containers as a Service (CaaS) platform which
enables an IT Ops managed and secure application
environment (infrastructure and content) for developer
self service to build and deploy applications.
21. Docker image
● A static definition of a container
● An image is a stack of reusable image layers
● An image have a base image
● Image properties:
○ Name
○ Tag ( by default “latest”)
○ Id
○ Size
23. docker pull: pulling existing image
● docker pull java:8
● docker pull alpine:3.5
● Docker pull redis
Docker image
Dockerfile: definition of an image
FROM node:6.3.1
maintainer jemlifathi
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
RUN npm install nodemon -g
RUN npm install pm2 -g
# Install app dependencies
COPY package.json /usr/src/app
CMD npm install
EXPOSE 3000
docker build: building an image
$>docker build -t my-image
relative_path_to_folder_containing_Docker
file
24. Docker
container
● An instance of an image
● We can create many containers out of one
image
● An image have a base image
● Container properties
○ Id
○ Status
○ Command, etc
● Container/machine interaction:
○ Volumes
○ Ports, etc
25. Docker container
Example: running a container
● docker run -it --name ubuntu-14 ubuntu:14.04 /bin/bash
● docker run -d --name webserver -v $(PWD)/webapp/:/usr/share/nginx/html -p
80:80 nginx
● docker run --name db -d -v $(PWD)/data/:/var/lib/mysql -p 3307:3306 -e
MYSQL_ROOT_PASSWORD=passwd -e MYSQL_DATABASE=test mysql:5.6
● docker run --name cache -d -p 6380:6379 -v $(PWD)/cache/:/data redis
● docker run --name backend -d -p 3000:3000 -v $(PWD)/backend/:/src/app/ --
link cache:cache --link db:db npm start
----------------------------------------------------------------------------------------------------------------------------------
-
● docker ps (-alq)
27. Docker Compose
You define your architecture (services, networks, etc) in a “docker-
compose.yml” file and Docker Compose validate your configuration,
starts your multi container app.
docker-compose.yml
28. Docker Cloud
Docker Data Center brings container management
and deployment to enterprises with a production
ready platform supported by Docker.