
Shukhratbek Mamadaliev
Why Docker?
RELEASED
2013
GitHub stars
+ 32 000
Dockerized apps in the Docker HUB
+ 500 000
22.03.2017
Third party projects using Docker
+ 100 000
22.03.2017
Docker container downloads
8 billion
22.03.2017
Docker employees
270
Docker's estimated value
$1 billion
22.03.2017
What is Docker?
- Lightweight, open, secure platform
- Simplify building, shipping, running apps
- Shipping container system for code
- Runs natively on Linux or Windows Server
- Runs on Windows or Mac Development machines (with a virtual machine)
- Relies on "images" and "containers"


The role of Images and Containers

Example: Ubuntu with Node.js and application code
Created by using an image. Runs your application.

Image
A read-only template composed of layered filesystems used to share common files and create Docker container instances.
Container
An isolated and secured shipping container created from and image that can be run, started, stopped, moved and deleted.


Where does Docker run?
Docker Containers vs VM

Docker Benefits
(for Web Deveoplers)

Accelerate Developer Onboarding

Eliminate App Conflicts

Environment Consistency

Ship Software Faster

Docker Tools

Docker Toolbox
Provides image and container tools
Virtual Machine (for Windows/Mac)
Works on Windows, Mac, Linux
Docker Toolbox Tools

Docker Client

Docker Client Overview
docker pull [image name]
docker run [image name]
docker images
docker ps
Key Docker Client Commands

Docker Machine

Docker Machine Overview
docker-machine ls
docker-machine start [machine name]
docker-machine stop [machine name]
docker-machine env [machine name]
docker-machine ip [machine name]
docker-machine status [machine name]

Key Docker Machine Commands
Docker Commands Review
docker pull [image name]
docker images
docker rmi [image ID]

Key Docker Client Image Commands
docker run [image name]
docker ps–a
docker rm [container ID]

Key Docker Client
Container Commands
Kitematic

Dockerfile

Dockerfile and Images
- Text file used to build Docker images
- Contains build instructions
- Instructions create intermediate image that can be cached to speed up future builds
- Used with "docker build" command

Dockerfile Overview
Key Dockerfile Instructions

Dockerfile Example
FROM node
MAINTAINER Shukhratbek
COPY . /var/www
WORKDIR /var/www
RUN npm install
EXPOSE 8080
ENTRYPOINT ["node", "server.js"]
Docker Compose
Docker Compose Manages Your Application Lifecycle

Docker Compose Features

Manages the whole application lifecycle:
- Start, stop and rebuild services
- View the status of running services
- Stream the log output of running services
- Run a one-off command on a service
The Need for Docker Compose

Docker Compose Workflow

The Role of the Docker Compose File

Key Service Configuration Options

docker-compose.yml Example
version: '2'
services:
node:
build:
context: .
dockerfile: node.dockerfile
networks: -nodeapp-network
mongodb:
image: mongo
networks: -nodeapp-network
networks:
nodeapp-network
driver: bridge
docker-compose.yml Example
docker-compose build
docker-compose up
docker-compose down
docker-compose logs
docker-compose ps
docker-compose stop
docker-compose start
docker-compose rm

Thank You!
Docker
By Shuhratbek Mamadaliyev
Docker
- 1,135