Docker Practical Use Cases
Alexei Yuzhakov
Docker?!
• Buzz word
• No clear understanding
• Rarely used for dev & testing use cases
• You apps deployment
Installation
• Docker Toolbox • Kitematic
Use Case: Different Versions
• LAMP app
• MySQL depends on Linux distro
• Different versions of MySQL
Use Case: Different Versions
• MySQL 5.5
• MySQL 5.6
• MySQL 5.7
• MariaDB 10.1
Use Case: Different Versions
• docker run … -d mysql:5.5
• docker run … -d mysql:5.6
• docker run … -d mysql:5.7
• docker run … -d mariadb:10.1
Use Case: PHP 7
• Find problems
• Fix code
• Fix unit tests
Use Case: PHP 7
• docker run –it –v `pwd`:/app php:7 bash
• Container as playground
• PHP 7 vs. PHP 5.6
Use Case: Similar Environment
• Ubuntu 12.04 & Travis CI
• docker run -it ubuntu:12.04 bash
• 58 sec for 1st
time
• <1 sec for the next time
Use Case: Build Farm
• Local build farm
• Jenkins
• TeamCity
• Buildbot
Use Case: Tools Evaluation
Use Case: Quick Install
More Use Case
• …
• Your stories here 
Issues & Tricks
• Docker container != VPS
• Process (life cycle)
• No SSH
• docker exec -it <CT-ID> bash
Issues & Tricks
• No connection to Docker daemon
Issues & Tricks
• docker version
• VirtualBox machine status
• eval "$(docker-machine env)"
Issues & Tricks
Issues & Tricks
• Container changes
• Environment variables
• Port-mapping
• Volume mapping
• Container re-creation
Issues & Tricks
• Image docs
Issues & Tricks
Issues & Tricks
• docker run …
• docker commit
• docker images
• docker run …
Issues & Tricks
• Dockerfile & docker build
• Mount points
• Main process selection
• Privileged operations
• ...
Conсlusion
• “Must have” tool
• 100,000+ ready-to-use images
• A lot of use cases
Thank You!
Alexei Yuzhakov
ayuzhakov@plesk.com
https://github.com/sibprogrammer
Questions?

Docker Practical Use Cases