SlideShare a Scribd company logo
ABCs of docker
● Basics of container and Docker
● Major Docker components
● Starting learning basic docker commands
● Hands-on labs and exercises
● Quiz
Course outline
Prerequisites
● Basic knowledge of how OS works, no need
to be expert
● At least 1 virtual machine
Traditional application deployment
A bit of scale makes a bit of scare
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
Containers under the hood
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
cgroups - Wikipedia
cgroups (abbreviated from control groups) is a Linux kernel feature that limits,
accounts for and isolates the resource usage (CPU, memory, disk I/O, network,
etc.) of a collection of processes.
Engineers at Google (primarily Paul Menage and Rohit Seth) started the work
on this feature in 2006, under the name "process containers".[1] In late 2007
the nomenclature changed to "control groups" due to the confusion caused by
multiple meanings of the term "container" in the Linux kernel context, and
control-group functionality merged into kernel version 2.6.24.[2] Since then,
developers have added many new features and controllers, such as support for
kernfs,[3] firewalling,[4] and unified hierarchy.[5]
ABCs of docker
ABCs of docker
Quiz - Containers
What are the benefits of using container
instead of VM?
● No need for hypervisor
● No need for operating system
● No physical hardware
● No need for priveleged user
● No. It’s uselles.
Quiz - Containers
What are the benefits of using container
instead of VM?
● No need for hypervisor
● No need for operating system
● No physical hardware
● No need for priveleged user
● No. It’s uselles.
I create process with PID=1234 in container. What PID will
be on host OS?
a. the same as in container: PID=1234
b. on host there will be PID=4321 that maps to PID=1234
in container
c. it wont be created in container. Actually container
creates it on host.
d. there will be no pid on host. PID=1234 is the child
process in container
Quiz - Containers
I create process with PID=1234 in container. What PID will
be on host OS?
a. the same as in container: PID=1234
b. on host there will be PID=4321 that maps to PID=1234
in container
c. it wont be created in container. Actually container
creates it on host.
d. there will be no pid on host. PID=1234 is the child
process in container
Quiz - Containers
What are the main components of namespaces?
a. uts, ipc, pid, network, user, mount
b. user, pid, mount, filesystem, application, io
c. pid, os, hardware, user, internet, filesystem
d. mount, hardware, network, user, pid, cgroup
Quiz - Containers
What are the main components of namespaces?
a. uts, ipc, pid, network, user, mount
b. user, pid, mount, filesystem, application, io
c. pid, os, hardware, user, internet, filesystem
d. mount, hardware, network, user, pid, cgroup
Quiz - Containers
Quiz - Containers
What should i do to run application with unprivileged user in
container?
a. change the owner to current user and run it
b. login as sudo and run the application
c. enter the container and run it
d. login as sudo then chown the application then run it
Quiz - Containers
What should i do to run application with unprivileged user in
container?
a. change the owner to current user and run it
b. login as sudo and run the application
c. enter the container and run it
d. login as sudo then chown the application then run it
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
ABCs of docker
Major Docker components
ABCs of docker
In short: write once, really run anywhere
Docker images and containers
pull the image from docker cloud servers
Images repository - Dockerhub
Installing Docker engine
1. Open https://docs.docker.com/installation/
2. Find the name of your host operating system
from the list
3. Follow the instructions
Linux: Add current user to docker group
sudo gpasswd -a <user_name> docker
Mac OS: set env variables for boot2docker
boot2docker up
export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=<cert path>
export DOCKER_TLS_VERIFY=1
or
$(boot2docker shellinit)
Get ip of boot2docker: boot2docker ip
Check version of docker: docker version
Windows: maybe like on MacOS...but didnt try
boot2docker up
set DOCKER_HOST=tcp://192.168.59.103:2376
set DOCKER_CERT_PATH=<cert path>
set DOCKER_TLS_VERIFY=1
or
boot2docker shellinit
Get ip of boot2docker: boot2docker ip
Check version of docker: docker version
Let docker say: Hello World!
docker run hello-world
Now let’s get into the container
1) docker pull centos – fetch centos image from repository
2) docker run centos – run fetched centos image within container
3) docker ps - list the running containers
4) docker ps -a - list all the containers (running + not running)
5) docker exec - to execute the command inside container
6) docker attach - get into the container
7) exit from container quits the container
8) Ctrl+P and Ctrl+Q leaves the running container
9) docker inspect <container_id> - show info about running container
Lab: Run required container
IOS/Android developers:
1) docker run -d –p 8080:8080 jenkins
2) Open http://<docker_host>:8080 in your browser and create build plan in
jenkins
Service developers:
1) docker run -it --rm williamyeh/scala
2) Write hello world in scala
TIP: docker --help is you cheat sheet
Quiz - Docker
What is the difference between images and containers?
a. containers consist of binary files, images consist of user app files
b. containers run only once, whereas images run multiple times
c. containers pulled from dockerhub, whereas images stores locally
d. images consist of instructions and user files, whereas containers
only runtime environment for user process
Quiz - Docker
What is the difference between images and containers?
a. containers consist of binary files, images consist of user app files
b. containers run only once, whereas images run multiple times
c. containers pulled from dockerhub, whereas images stores locally
d. images consist of instructions and user files, whereas containers
only runtime environment for user process
Quiz - Docker
What will be the result of the following instructions?
docker run -it my-image /bin/bash # let’s say it returns ID 123...
echo “Sample text” | cat > SampleText.txt
exit
docker cp 123:/root/SampleText.txt ./
a. will copy SampleText.txt to current directory
b. will copy data from the current directory to /root/SampleText.txt inside container
c. prints to screen Sample text and copies SampleText.txt to current directory on docker host
d. does nothing. Terminates with error
Quiz - Docker
What will be the result of the following instructions?
docker run -it my-image /bin/bash # let’s say it returns ID 123...
echo “Sample text” | cat > SampleText.txt
exit
docker cp 123:/root/SampleText.txt ./
a. will copy SampleText.txt to current directory
b. will copy data from the current directory to /root/SampleText.txt inside container
c. prints to screen Sample text and copies SampleText.txt to current directory on docker host
d. does nothing. Terminates with error
Quiz - Docker
What will be the result of the following instructions?
docker run -d my-image /bin/bash echo “Sample text” | cat > SampleText.txt
# let’s say returns id 123...
docker run -d my-image /bin/bash “ping 8.8.8.8”
docker cp 123:/root/SampleText.txt ./
a. will copy SampleText.txt to current directory
b. will copy data from the current directory to /root/SampleText.txt inside container
c. prints to screen Sample text and copies SampleText.txt to current directory on docker host
d. does nothing. Terminates with error
Quiz - Docker
What will be the result of the following instructions?
docker run -d my-image /bin/bash echo “Sample text” | cat > SampleText.txt
# let’s say returns id 123...
docker run -d my-image /bin/bash “ping 8.8.8.8”
docker cp 123:/root/SampleText.txt ./
a. will copy SampleText.txt to current directory
b. will copy data from the current directory to /root/SampleText.txt inside container
c. prints to screen Sample text and copies SampleText.txt to current directory on docker host
d. does nothing. Terminates with error
Writing own Dockerfile
FROM ubuntu:latest
MAINTAINTER <name surname>
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y nginx
CMD ["nginx", "-g", "daemon off;"]
Docker Workflow 1
1) Download file from curl -L -O http://github.com/atbaker/flask-example/archive/master.zip
2) Unzip master.zip
3) run python flask-example.py
Build as docker:
FROM python:2-onbuild
EXPOSE 8000
CMD [“gunicorn”, “-c”, “gunicorn_config.py”, “flask-example:app”]
Docker Workflow 2
Download file from curl -L -O http://github.com/atbaker/django-example/archive/master.zip
Build as docker:
FROM python:2.7-onbuild
EXPOSE 8000
CMD [“gunicorn”, “-c”, “gunicorn_config.py”, “--chdr”, “django-example”, “wsgi:application”]
docker run --name postgres -d postgres:9.3
docker run --name memcached -d atbaker/memcached-verbose
docker run --name django -d -p 8000:8000 --link postgres:db --link memcached:cache django-example
docker run --name django --link postgres:db --link memcached:cache django-example python django/example/manage.py migrate
Docker workflow 2 with Docker-Compose
django:
build: .
links:
- postgres:db
- memcached:cache
ports:
- “8000:80”
postgres:
image:postgres:9.3
memcached:
image:atbaker/memcached-verbose
Useful resources
https://docs.docker.com/ - official docs from Docker
https://docs.docker.com/compose/ - official docs about Docker
Compose
https://docs.docker.com/docker/introduction/understanding-docker/ -
Docker architecture
https://linuxcontainers.org/ - WiKi about Linux Containers (LXC)
https://lwn.net/Articles/531114/ - Linux namespaces overview
https://lwn.net/Articles/532748/ - Linux PID namespaces

More Related Content

PDF
A Hands-on Introduction to Docker
PPTX
Docker Introductory workshop
PDF
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
PDF
Introducing Docker
PDF
Docker by Example - Basics
PDF
Docker by Example - Quiz
PDF
Docker and Containers for Development and Deployment — SCALE12X
PDF
Docker at Djangocon 2013 | Talk by Ken Cochrane
A Hands-on Introduction to Docker
Docker Introductory workshop
Django로 만든 웹 애플리케이션 도커라이징하기 + 도커 컴포즈로 개발 환경 구축하기
Introducing Docker
Docker by Example - Basics
Docker by Example - Quiz
Docker and Containers for Development and Deployment — SCALE12X
Docker at Djangocon 2013 | Talk by Ken Cochrane

What's hot (20)

PDF
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
PPTX
Docker and the Container Ecosystem
PDF
Running Django on Docker: a workflow and code
PDF
Introduction to Docker and deployment and Azure
PPTX
Installaling Puppet Master and Agent
PDF
Continuous Integration: SaaS vs Jenkins in Cloud
PDF
Docker
PPT
Build service with_docker_in_90mins
PDF
開放運算&GPU技術研究班
PDF
Docker - From Walking To Running
PDF
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
PDF
Docker in production: reality, not hype (OSCON 2015)
PPTX
Docker workshop
PDF
Docker Continuous Delivery Workshop
PDF
Docker workshop 0507 Taichung
PPT
Python virtualenv & pip in 90 minutes
PDF
How to deploy PHP projects with docker
PDF
Vagrant + Docker provider [+Puppet]
PDF
Docker Introduction
PDF
Introduction to docker
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
Docker and the Container Ecosystem
Running Django on Docker: a workflow and code
Introduction to Docker and deployment and Azure
Installaling Puppet Master and Agent
Continuous Integration: SaaS vs Jenkins in Cloud
Docker
Build service with_docker_in_90mins
開放運算&GPU技術研究班
Docker - From Walking To Running
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Docker in production: reality, not hype (OSCON 2015)
Docker workshop
Docker Continuous Delivery Workshop
Docker workshop 0507 Taichung
Python virtualenv & pip in 90 minutes
How to deploy PHP projects with docker
Vagrant + Docker provider [+Puppet]
Docker Introduction
Introduction to docker
Ad

Viewers also liked (16)

PPTX
Tribal Nova Docker workshop
PPT
Venture Capital - An Introduction
PDF
Docker - Containervirtualisierung leichtgemacht
PDF
Visualising Basic Concepts of Docker
PPTX
Introduction to Desired State Configuration (DSC)
PPTX
Single Host Docker Networking
PDF
Rootlinux17: An introduction to Xen Project Virtualisation
PPTX
What is Docker
PDF
Basic docker for developer
PDF
Docker by Example - Basics
PDF
Docker Einführung @GPN15
PDF
Test Automation - Principles and Practices
PDF
Landscape Line Drawings (sketch examples)
PPT
Introduction to Cognitive Ergonomics
ODP
New Amazing Things about AngularJS 2.0
PDF
Product Marketing Framework for Product or Service Launch
Tribal Nova Docker workshop
Venture Capital - An Introduction
Docker - Containervirtualisierung leichtgemacht
Visualising Basic Concepts of Docker
Introduction to Desired State Configuration (DSC)
Single Host Docker Networking
Rootlinux17: An introduction to Xen Project Virtualisation
What is Docker
Basic docker for developer
Docker by Example - Basics
Docker Einführung @GPN15
Test Automation - Principles and Practices
Landscape Line Drawings (sketch examples)
Introduction to Cognitive Ergonomics
New Amazing Things about AngularJS 2.0
Product Marketing Framework for Product or Service Launch
Ad

Similar to ABCs of docker (20)

PPTX
Powercoders · Docker · Fall 2021.pptx
PDF
Introduction to Docker
PDF
Docker 101 - Intro to Docker
PDF
Cloud Native Computing - Part III - Containers
PPTX
Primi passi con Docker - ItalianCoders - 12-01-2021
PDF
Introduction of Docker and Docker Compose
PDF
Docker presentation | Paris Docker Meetup
PDF
Victor Vieux at Docker Paris Meetup #1
PPTX
Docker Starter Pack
PPTX
Introduction to containers
PDF
Lecture eight to be introduced in class.
PDF
docker.pdf
PDF
Docker.pdf
PDF
Work shop - an introduction to the docker ecosystem
PDF
Introduction to Docker - Learning containerization XP conference 2016
PPSX
Docker Kubernetes Istio
PPTX
Docker, LinuX Container
PDF
Docker by Example - Quiz
PDF
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
PDF
Docker, but what it is?
Powercoders · Docker · Fall 2021.pptx
Introduction to Docker
Docker 101 - Intro to Docker
Cloud Native Computing - Part III - Containers
Primi passi con Docker - ItalianCoders - 12-01-2021
Introduction of Docker and Docker Compose
Docker presentation | Paris Docker Meetup
Victor Vieux at Docker Paris Meetup #1
Docker Starter Pack
Introduction to containers
Lecture eight to be introduced in class.
docker.pdf
Docker.pdf
Work shop - an introduction to the docker ecosystem
Introduction to Docker - Learning containerization XP conference 2016
Docker Kubernetes Istio
Docker, LinuX Container
Docker by Example - Quiz
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker, but what it is?

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Modernizing your data center with Dell and AMD
PDF
Electronic commerce courselecture one. Pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Cloud computing and distributed systems.
PDF
Approach and Philosophy of On baking technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
Teaching material agriculture food technology
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
The AUB Centre for AI in Media Proposal.docx
Mobile App Security Testing_ A Comprehensive Guide.pdf
20250228 LYD VKU AI Blended-Learning.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Modernizing your data center with Dell and AMD
Electronic commerce courselecture one. Pdf
cuic standard and advanced reporting.pdf
Advanced Soft Computing BINUS July 2025.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
GamePlan Trading System Review: Professional Trader's Honest Take
NewMind AI Monthly Chronicles - July 2025
Per capita expenditure prediction using model stacking based on satellite ima...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Cloud computing and distributed systems.
Approach and Philosophy of On baking technology
Understanding_Digital_Forensics_Presentation.pptx

ABCs of docker

  • 2. ● Basics of container and Docker ● Major Docker components ● Starting learning basic docker commands ● Hands-on labs and exercises ● Quiz Course outline
  • 3. Prerequisites ● Basic knowledge of how OS works, no need to be expert ● At least 1 virtual machine
  • 5. A bit of scale makes a bit of scare
  • 23. cgroups - Wikipedia cgroups (abbreviated from control groups) is a Linux kernel feature that limits, accounts for and isolates the resource usage (CPU, memory, disk I/O, network, etc.) of a collection of processes. Engineers at Google (primarily Paul Menage and Rohit Seth) started the work on this feature in 2006, under the name "process containers".[1] In late 2007 the nomenclature changed to "control groups" due to the confusion caused by multiple meanings of the term "container" in the Linux kernel context, and control-group functionality merged into kernel version 2.6.24.[2] Since then, developers have added many new features and controllers, such as support for kernfs,[3] firewalling,[4] and unified hierarchy.[5]
  • 26. Quiz - Containers What are the benefits of using container instead of VM? ● No need for hypervisor ● No need for operating system ● No physical hardware ● No need for priveleged user ● No. It’s uselles.
  • 27. Quiz - Containers What are the benefits of using container instead of VM? ● No need for hypervisor ● No need for operating system ● No physical hardware ● No need for priveleged user ● No. It’s uselles.
  • 28. I create process with PID=1234 in container. What PID will be on host OS? a. the same as in container: PID=1234 b. on host there will be PID=4321 that maps to PID=1234 in container c. it wont be created in container. Actually container creates it on host. d. there will be no pid on host. PID=1234 is the child process in container Quiz - Containers
  • 29. I create process with PID=1234 in container. What PID will be on host OS? a. the same as in container: PID=1234 b. on host there will be PID=4321 that maps to PID=1234 in container c. it wont be created in container. Actually container creates it on host. d. there will be no pid on host. PID=1234 is the child process in container Quiz - Containers
  • 30. What are the main components of namespaces? a. uts, ipc, pid, network, user, mount b. user, pid, mount, filesystem, application, io c. pid, os, hardware, user, internet, filesystem d. mount, hardware, network, user, pid, cgroup Quiz - Containers
  • 31. What are the main components of namespaces? a. uts, ipc, pid, network, user, mount b. user, pid, mount, filesystem, application, io c. pid, os, hardware, user, internet, filesystem d. mount, hardware, network, user, pid, cgroup Quiz - Containers
  • 32. Quiz - Containers What should i do to run application with unprivileged user in container? a. change the owner to current user and run it b. login as sudo and run the application c. enter the container and run it d. login as sudo then chown the application then run it
  • 33. Quiz - Containers What should i do to run application with unprivileged user in container? a. change the owner to current user and run it b. login as sudo and run the application c. enter the container and run it d. login as sudo then chown the application then run it
  • 41. In short: write once, really run anywhere
  • 42. Docker images and containers
  • 43. pull the image from docker cloud servers
  • 44. Images repository - Dockerhub
  • 45. Installing Docker engine 1. Open https://docs.docker.com/installation/ 2. Find the name of your host operating system from the list 3. Follow the instructions
  • 46. Linux: Add current user to docker group sudo gpasswd -a <user_name> docker
  • 47. Mac OS: set env variables for boot2docker boot2docker up export DOCKER_HOST=tcp://192.168.59.103:2376 export DOCKER_CERT_PATH=<cert path> export DOCKER_TLS_VERIFY=1 or $(boot2docker shellinit) Get ip of boot2docker: boot2docker ip Check version of docker: docker version
  • 48. Windows: maybe like on MacOS...but didnt try boot2docker up set DOCKER_HOST=tcp://192.168.59.103:2376 set DOCKER_CERT_PATH=<cert path> set DOCKER_TLS_VERIFY=1 or boot2docker shellinit Get ip of boot2docker: boot2docker ip Check version of docker: docker version
  • 49. Let docker say: Hello World! docker run hello-world
  • 50. Now let’s get into the container 1) docker pull centos – fetch centos image from repository 2) docker run centos – run fetched centos image within container 3) docker ps - list the running containers 4) docker ps -a - list all the containers (running + not running) 5) docker exec - to execute the command inside container 6) docker attach - get into the container 7) exit from container quits the container 8) Ctrl+P and Ctrl+Q leaves the running container 9) docker inspect <container_id> - show info about running container
  • 51. Lab: Run required container IOS/Android developers: 1) docker run -d –p 8080:8080 jenkins 2) Open http://<docker_host>:8080 in your browser and create build plan in jenkins Service developers: 1) docker run -it --rm williamyeh/scala 2) Write hello world in scala TIP: docker --help is you cheat sheet
  • 52. Quiz - Docker What is the difference between images and containers? a. containers consist of binary files, images consist of user app files b. containers run only once, whereas images run multiple times c. containers pulled from dockerhub, whereas images stores locally d. images consist of instructions and user files, whereas containers only runtime environment for user process
  • 53. Quiz - Docker What is the difference between images and containers? a. containers consist of binary files, images consist of user app files b. containers run only once, whereas images run multiple times c. containers pulled from dockerhub, whereas images stores locally d. images consist of instructions and user files, whereas containers only runtime environment for user process
  • 54. Quiz - Docker What will be the result of the following instructions? docker run -it my-image /bin/bash # let’s say it returns ID 123... echo “Sample text” | cat > SampleText.txt exit docker cp 123:/root/SampleText.txt ./ a. will copy SampleText.txt to current directory b. will copy data from the current directory to /root/SampleText.txt inside container c. prints to screen Sample text and copies SampleText.txt to current directory on docker host d. does nothing. Terminates with error
  • 55. Quiz - Docker What will be the result of the following instructions? docker run -it my-image /bin/bash # let’s say it returns ID 123... echo “Sample text” | cat > SampleText.txt exit docker cp 123:/root/SampleText.txt ./ a. will copy SampleText.txt to current directory b. will copy data from the current directory to /root/SampleText.txt inside container c. prints to screen Sample text and copies SampleText.txt to current directory on docker host d. does nothing. Terminates with error
  • 56. Quiz - Docker What will be the result of the following instructions? docker run -d my-image /bin/bash echo “Sample text” | cat > SampleText.txt # let’s say returns id 123... docker run -d my-image /bin/bash “ping 8.8.8.8” docker cp 123:/root/SampleText.txt ./ a. will copy SampleText.txt to current directory b. will copy data from the current directory to /root/SampleText.txt inside container c. prints to screen Sample text and copies SampleText.txt to current directory on docker host d. does nothing. Terminates with error
  • 57. Quiz - Docker What will be the result of the following instructions? docker run -d my-image /bin/bash echo “Sample text” | cat > SampleText.txt # let’s say returns id 123... docker run -d my-image /bin/bash “ping 8.8.8.8” docker cp 123:/root/SampleText.txt ./ a. will copy SampleText.txt to current directory b. will copy data from the current directory to /root/SampleText.txt inside container c. prints to screen Sample text and copies SampleText.txt to current directory on docker host d. does nothing. Terminates with error
  • 58. Writing own Dockerfile FROM ubuntu:latest MAINTAINTER <name surname> FROM ubuntu:latest RUN apt-get update RUN apt-get install -y nginx CMD ["nginx", "-g", "daemon off;"]
  • 59. Docker Workflow 1 1) Download file from curl -L -O http://github.com/atbaker/flask-example/archive/master.zip 2) Unzip master.zip 3) run python flask-example.py Build as docker: FROM python:2-onbuild EXPOSE 8000 CMD [“gunicorn”, “-c”, “gunicorn_config.py”, “flask-example:app”]
  • 60. Docker Workflow 2 Download file from curl -L -O http://github.com/atbaker/django-example/archive/master.zip Build as docker: FROM python:2.7-onbuild EXPOSE 8000 CMD [“gunicorn”, “-c”, “gunicorn_config.py”, “--chdr”, “django-example”, “wsgi:application”] docker run --name postgres -d postgres:9.3 docker run --name memcached -d atbaker/memcached-verbose docker run --name django -d -p 8000:8000 --link postgres:db --link memcached:cache django-example docker run --name django --link postgres:db --link memcached:cache django-example python django/example/manage.py migrate
  • 61. Docker workflow 2 with Docker-Compose django: build: . links: - postgres:db - memcached:cache ports: - “8000:80” postgres: image:postgres:9.3 memcached: image:atbaker/memcached-verbose
  • 62. Useful resources https://docs.docker.com/ - official docs from Docker https://docs.docker.com/compose/ - official docs about Docker Compose https://docs.docker.com/docker/introduction/understanding-docker/ - Docker architecture https://linuxcontainers.org/ - WiKi about Linux Containers (LXC) https://lwn.net/Articles/531114/ - Linux namespaces overview https://lwn.net/Articles/532748/ - Linux PID namespaces