SlideShare a Scribd company logo
Getting Started with Docker
Suggested Topics
• Composer
• Vagrant
• Kafka
• React / React
Native / Flow
• More Docker
• General JavaScript
• Organization
principals
• Node JS / Node
promises
• GIS
• SQL
Topics
• CoffeeScript
• Unit Testing
• Polyfills
• Interaction Design / Improving User
Experience
• Mobile testing
• A/B Testing
• Regression testing
• Performance optimization
• Dev tools
• D3.js / three.js / processing's / etc
• Source Maps
• Static site generators
• Accessibility for Rich Internet
applications (ARIA)
• GeoJSON and mapping API’s
• Electron
• Node.js
• Kalabox
• Server Security
• GreenSocks Animations
• Google Analytics
• Test Driven Development
• Command Line
Mark Aplet
@visual28
Web Developer at Symsoft
Docker
An Introduction & Getting Started
Agenda
• Background
• Installation
• Commands
• Hello World
• Dockerfile
• Docker Compose
What’s the Big Deal?
LAMP
Once upon a time…
The Challenge Today
Static website
nginx 1.5 + modsecurity + openssl + bootstrap
User DB
postgresql + pgv8 + v8
Analytics DB
hadoop + hive + thrift + OpenJDK
Web frontend
Ruby + Rails + sass + Unicorn
Queue
Redis + redis-sentinel
Background workers
Python 3.0 + celery + pyredis + libcurl + ffmpeg +
libopencv + nodejs + phantomjs
API endpoint
Python 2.7 + Flask + pyredis + celery +
psycopg + postgresql-client
Development VM
QA server
Disaster recovery
Contributor’s laptop
Production Servers
Production Cluster
Customer Data Center
Matrix From Hell
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
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
Getting Started with Docker
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
Standardized Container
Separation of Concerns
Docker Container
Static website Web frontendUser DB Queue Analytics DB
Development
VM
QA server
Public Cloud
Contributor’s
laptop
Production
Cluster
Customer
Data Center
Virtualization
Virtual
Machines
• Hardware VM’s been
around a long time
• Allows multiple guest
systems to live on a
single host
• Snapshots “freeze”
state at that point
• Can be migrated
from one host to
another
VM
Problems
• Ship too many bits
• Each VM contained
independent OS and
resource pool
• Scale may not be of
value
Innovation
• Created opportunity to
cut out unnecessary
features to create
lightweight process
virtualization
• lead to creation of
LXC containers. (Linux
Containers)
• Much smaller OS with
minimal resource
requirements that
boots in seconds
Getting Started with Docker
VM vs Container
Hypervisor (Type 2)
Host OS
Server
Guest
OS
Bins/Lib
s
Docker
VM
Container
App 1
Guest
OS
Bins/Lib
s
App 1
Guest
OS
Bins/Lib
s
App 2
Host OS
Server
App1
App1
App1
App2
App2
App2
App2
Bins/Libs Bins/Libs
Enter
Docker
• Removing of the
unnecessary parts of
OS continued
• 2013 DotCloud (now
Docker) really
pushed the
boundaries of
lightweight process
virtualization
Enter
Docker
• A Docker container
unlike VM's or LXC
does not require or
include a separate
OS
• Docker instead relies
on the Linux kernel
functionality and
uses resource
Get Started
Download
• docker.com
• Docker for Mac/Win
for newer systems
• Docker toolbox for
older systems
Helpful
• Prior knowledge of
Linux is helpful
• Use Docker CLI in
terminal
Commands
COMMANDS
ps = Process
images = images on
host
run = run a command
rm = Remove Process
rmi = remove image
FLAGS
-a = All Hidden
-d = detached mode
-ti = Terminal
Interactive
-p = Port number
-v = Volume
DEMO
Hello World
$ docker run hello-world
Whalesay
$ docker run docker/whalesay cowsay foobar
Whalesay: Dockerfile
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install –y fortunes
CMD /usr/games/fortune -a | cowsay
$ docker build -t docker-whale .
MySQL
$ docker pull mysql
$ docker run --name wordpressdb
-e MYSQL_ROOT_PASSWORD=password
-e MYSQL_DATABASE=wordpress -d mysql:5.7
WordPress
$ docker pull wordpress
$ docker run
-e WORDPRESS_DB_PASSWORD=password
--name mywordpress
--link wordpressdb:mysql
-p 8080:80 -d
-v "$PWD/":/var/www/html wordpress
WordPress: Docker-Compose
version: '2'
services:
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
links:
- db
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
volumes:
- ./wp-content/:/var/www/html/wp-content

More Related Content

What's hot (20)

PDF
Containers docker-docker hub-azureacr-azure aci
Rajesh Kolla
 
PDF
Automating CICD Pipeline with GitLab and Docker Containers for Java Applications
Jelastic Multi-Cloud PaaS
 
PPT
Sebastien goasguen cloud stack and docker
ShapeBlue
 
PDF
On Prem Container Cloud - Lessons Learned
CodeOps Technologies LLP
 
PPTX
Building Big Architectures
Ramit Surana
 
PPTX
JavaEdge 2008: Your next version control system
Gilad Garon
 
PPTX
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
Docker, Inc.
 
PPTX
Adf with docker
Eugene Fedorenko
 
PDF
Running Projects in Application Containers, System Containers & VMs - Jelasti...
Jelastic Multi-Cloud PaaS
 
PDF
Kubernetes Architecture - beyond a black box - Part 1
Hao H. Zhang
 
PDF
DockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
Docker, Inc.
 
PPTX
Containers, Serverless and Functions in a nutshell
Eugene Fedorenko
 
PDF
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
Docker, Inc.
 
PDF
Aks pimarox from zero to hero
Johan Biere
 
PPTX
Microservices with containers in the cloud
Eugene Fedorenko
 
PPTX
Azure Container Service
Alexander Feschenko
 
PPTX
Dell Trials and Triumphs using Docker on Client Systems by Sean McGinnis and ...
Docker, Inc.
 
PPTX
NetflixOSS for Triangle Devops Oct 2013
aspyker
 
PPTX
Lessons from migrating container applications to azure
Christoph Schittko
 
PPTX
Application Deployment and Management at Scale at 1&1
Matt Baldwin
 
Containers docker-docker hub-azureacr-azure aci
Rajesh Kolla
 
Automating CICD Pipeline with GitLab and Docker Containers for Java Applications
Jelastic Multi-Cloud PaaS
 
Sebastien goasguen cloud stack and docker
ShapeBlue
 
On Prem Container Cloud - Lessons Learned
CodeOps Technologies LLP
 
Building Big Architectures
Ramit Surana
 
JavaEdge 2008: Your next version control system
Gilad Garon
 
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
Docker, Inc.
 
Adf with docker
Eugene Fedorenko
 
Running Projects in Application Containers, System Containers & VMs - Jelasti...
Jelastic Multi-Cloud PaaS
 
Kubernetes Architecture - beyond a black box - Part 1
Hao H. Zhang
 
DockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
Docker, Inc.
 
Containers, Serverless and Functions in a nutshell
Eugene Fedorenko
 
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
Docker, Inc.
 
Aks pimarox from zero to hero
Johan Biere
 
Microservices with containers in the cloud
Eugene Fedorenko
 
Azure Container Service
Alexander Feschenko
 
Dell Trials and Triumphs using Docker on Client Systems by Sean McGinnis and ...
Docker, Inc.
 
NetflixOSS for Triangle Devops Oct 2013
aspyker
 
Lessons from migrating container applications to azure
Christoph Schittko
 
Application Deployment and Management at Scale at 1&1
Matt Baldwin
 

Viewers also liked (9)

PDF
On Cubic Implicative Hyper BCK-Ideals of Hyper BCK-Algebras
iosrjce
 
PDF
Take Your Social Media Program To The Next Level!
Multifamily Insiders
 
DOCX
Public Management Challenge
ondapolitica
 
PPTX
مترجم هاوس
Alhayat4Translation
 
PDF
Globalization and Industrial Development in Nigeria
iosrjce
 
PPT
Pengertian ( juknis permenpan 35 tahun 2010)
putu micana
 
PPTX
David alfaro siqueiros
Michelle Bouvier
 
PDF
Online Meetup: What's new in docker 1.13.0
Docker, Inc.
 
On Cubic Implicative Hyper BCK-Ideals of Hyper BCK-Algebras
iosrjce
 
Take Your Social Media Program To The Next Level!
Multifamily Insiders
 
Public Management Challenge
ondapolitica
 
مترجم هاوس
Alhayat4Translation
 
Globalization and Industrial Development in Nigeria
iosrjce
 
Pengertian ( juknis permenpan 35 tahun 2010)
putu micana
 
David alfaro siqueiros
Michelle Bouvier
 
Online Meetup: What's new in docker 1.13.0
Docker, Inc.
 
Ad

Similar to Getting Started with Docker (20)

PPTX
Docker - Portable Deployment
javaonfly
 
PDF
Introduction to Docker
Aditya Konarde
 
PDF
Containers: from development to production at DevNation 2015
Jérôme Petazzoni
 
PPTX
Cont0519
Samuel Dratwa
 
PDF
Docker from basics to orchestration (PHPConfBr2015)
Wellington Silva
 
PPTX
doitUNIT I - Docker-Containerization.pptx
aman0710p
 
PPTX
Dockerize the World
damovsky
 
PPTX
The challenge of application distribution - Introduction to Docker (2014 dec ...
Sébastien Portebois
 
PDF
Docker-v3.pdf
Bruno Cornec
 
PPT
2 Linux Container and Docker
Fabio Fumarola
 
PPTX
Introduction to Containers & Diving a little deeper into the benefits of Con...
Synergetics Learning and Cloud Consulting
 
PDF
Docker module 1
Liang Bo
 
PPTX
Docker introduction
dotCloud
 
PPTX
Dockerize the World - presentation from Hradec Kralove
damovsky
 
PDF
Docker's Jérôme Petazzoni: Best Practices in Dev to Production Parity for Con...
Heavybit
 
PPTX
DockerCon 15 Keynote - Day 2
Docker, Inc.
 
PDF
Introduction to Containers
Dharmit Shah
 
PDF
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Walid Shaari
 
PDF
Dockerize your Symfony application - Symfony Live NYC 2014
André Rømcke
 
PDF
Containing the world with Docker
Giuseppe Piccolo
 
Docker - Portable Deployment
javaonfly
 
Introduction to Docker
Aditya Konarde
 
Containers: from development to production at DevNation 2015
Jérôme Petazzoni
 
Cont0519
Samuel Dratwa
 
Docker from basics to orchestration (PHPConfBr2015)
Wellington Silva
 
doitUNIT I - Docker-Containerization.pptx
aman0710p
 
Dockerize the World
damovsky
 
The challenge of application distribution - Introduction to Docker (2014 dec ...
Sébastien Portebois
 
Docker-v3.pdf
Bruno Cornec
 
2 Linux Container and Docker
Fabio Fumarola
 
Introduction to Containers & Diving a little deeper into the benefits of Con...
Synergetics Learning and Cloud Consulting
 
Docker module 1
Liang Bo
 
Docker introduction
dotCloud
 
Dockerize the World - presentation from Hradec Kralove
damovsky
 
Docker's Jérôme Petazzoni: Best Practices in Dev to Production Parity for Con...
Heavybit
 
DockerCon 15 Keynote - Day 2
Docker, Inc.
 
Introduction to Containers
Dharmit Shah
 
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Walid Shaari
 
Dockerize your Symfony application - Symfony Live NYC 2014
André Rømcke
 
Containing the world with Docker
Giuseppe Piccolo
 
Ad

Recently uploaded (20)

PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 

Getting Started with Docker

  • 2. Suggested Topics • Composer • Vagrant • Kafka • React / React Native / Flow • More Docker • General JavaScript • Organization principals • Node JS / Node promises • GIS • SQL
  • 3. Topics • CoffeeScript • Unit Testing • Polyfills • Interaction Design / Improving User Experience • Mobile testing • A/B Testing • Regression testing • Performance optimization • Dev tools • D3.js / three.js / processing's / etc • Source Maps • Static site generators • Accessibility for Rich Internet applications (ARIA) • GeoJSON and mapping API’s • Electron • Node.js • Kalabox • Server Security • GreenSocks Animations • Google Analytics • Test Driven Development • Command Line
  • 5. Docker An Introduction & Getting Started
  • 6. Agenda • Background • Installation • Commands • Hello World • Dockerfile • Docker Compose
  • 9. The Challenge Today Static website nginx 1.5 + modsecurity + openssl + bootstrap User DB postgresql + pgv8 + v8 Analytics DB hadoop + hive + thrift + OpenJDK Web frontend Ruby + Rails + sass + Unicorn Queue Redis + redis-sentinel Background workers Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs API endpoint Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Disaster recovery Contributor’s laptop Production Servers Production Cluster Customer Data Center
  • 10. Matrix From Hell 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 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 12. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 15. Docker Container Static website Web frontendUser DB Queue Analytics DB Development VM QA server Public Cloud Contributor’s laptop Production Cluster Customer Data Center
  • 17. Virtual Machines • Hardware VM’s been around a long time • Allows multiple guest systems to live on a single host • Snapshots “freeze” state at that point • Can be migrated from one host to another
  • 18. VM Problems • Ship too many bits • Each VM contained independent OS and resource pool • Scale may not be of value
  • 19. Innovation • Created opportunity to cut out unnecessary features to create lightweight process virtualization • lead to creation of LXC containers. (Linux Containers) • Much smaller OS with minimal resource requirements that boots in seconds
  • 21. VM vs Container Hypervisor (Type 2) Host OS Server Guest OS Bins/Lib s Docker VM Container App 1 Guest OS Bins/Lib s App 1 Guest OS Bins/Lib s App 2 Host OS Server App1 App1 App1 App2 App2 App2 App2 Bins/Libs Bins/Libs
  • 22. Enter Docker • Removing of the unnecessary parts of OS continued • 2013 DotCloud (now Docker) really pushed the boundaries of lightweight process virtualization
  • 23. Enter Docker • A Docker container unlike VM's or LXC does not require or include a separate OS • Docker instead relies on the Linux kernel functionality and uses resource
  • 25. Download • docker.com • Docker for Mac/Win for newer systems • Docker toolbox for older systems
  • 26. Helpful • Prior knowledge of Linux is helpful • Use Docker CLI in terminal
  • 27. Commands COMMANDS ps = Process images = images on host run = run a command rm = Remove Process rmi = remove image FLAGS -a = All Hidden -d = detached mode -ti = Terminal Interactive -p = Port number -v = Volume
  • 28. DEMO
  • 29. Hello World $ docker run hello-world
  • 30. Whalesay $ docker run docker/whalesay cowsay foobar
  • 31. Whalesay: Dockerfile FROM docker/whalesay:latest RUN apt-get -y update && apt-get install –y fortunes CMD /usr/games/fortune -a | cowsay $ docker build -t docker-whale .
  • 32. MySQL $ docker pull mysql $ docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -d mysql:5.7
  • 33. WordPress $ docker pull wordpress $ docker run -e WORDPRESS_DB_PASSWORD=password --name mywordpress --link wordpressdb:mysql -p 8080:80 -d -v "$PWD/":/var/www/html wordpress
  • 34. WordPress: Docker-Compose version: '2' services: db: image: mysql:5.7 volumes: - "./.data/db:/var/lib/mysql" restart: always environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest links: - db ports: - "8080:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_PASSWORD: wordpress volumes: - ./wp-content/:/var/www/html/wp-content

Editor's Notes

  • #15: * Takes more effort to deploy software than to ship physical goods
  • #16: * Developers create a box that they fill with data, * Infrastructure worries about how to deploy the box
  • #22: • Containers are isolated, but share OS and, where appropriate, bins/libraries