SlideShare a Scribd company logo
Developer Workflow using
Wyn Van Devanter
@wynv
wyn.vandevanter@excella.com
https://github.com/excellalabs/docker-workshop-1
Vic Kumar
vic.kumar@excella.com
Cloud Enabling Technologies
• Virtualization
• Private Platform-as-a-Service
• Cloud management software
• Automation software
• Containers
Cloud market: 23 billion in 2017, 39 billion by 2020
What is Docker?
• A VM gives you a OS in a window
• A container gives you a file system via background process(es)
VMs vs Containers
• VMs are good at managing units of hardware resources
• Containers are good at managing units of software
ContainersVirtual Machines
Developer workflow with docker
How do Docker containers work? Images and
containers
Dockerfile > Image > Container
• Dockerfile: text file recipe for image
• Image: read-only file system (i.e. template)
• Container: copy of an image (i.e. instance)
The container is what gets run and where apps go
Dockerfile
Runs when container starts
Runs when image is built
Images
Containers
Underneath Docker
• Docker typically uses the Linux container system (i.e. LXC), which can
run apps that run on Linux (now it also uses the new Windows
container system)
• Linux containers isolate processes
• Containers share the host operating system’s kernel - meant to create an
environment without the need for a separate kernel
Docker on Linux Containers
• Docker helps manage containers
• Docker abstracts machine-specific settings relating to networking, storing,
logging, etc.
• Docker makes it easy to create and distribute containers
• Docker allows containers to run on many different machines, with
many different configurations
• 1 process per container philosophy
Docker on Mac and Windows
• Docker runs containers on Linux kernel via virtual machine
• They can now also run on the Windows kernel
Benefits of containers
• Consistent
• Very portable
• Fast to spin up
• Smaller footprint
• Easy to scale
Open Container Initiative
• Docker is a runtime and container format based on the Open
Container Initiative
• Create open industry standards around container formats and
runtime
docker run example.com/org/app:v1.0.0
rkt run example.com/org/app,version=v1.0.0
Windows?
Docker can also use the container system new in Windows Server 2016 and
Windows 10, which can run Windows apps in containers
Source: Docker Blog
Where can I host applications in containers?
• Linux server
• VM on Azure, AWS, etc.
• Container service like AWS Container Service, Azure Container Service
• Many other hosts (Hadoop, etc.)
• Using scheduler/orchestrator like ECS, Kubernetes, Swarm, Mesos
Building & Deploying Overview
• Dev container, big
• Prod container, small
Dev container
- SDK
- Source code
- System files to support development
- Build artifacts
Prod container
- Build artifacts
Fun facts
• Average host runs 7 containers but goes way up
• 40% of Docker adopters are using an orchestrator
• Kubernetes, ECS, Swarm, etc.
Container Ecosystem
Container Management System
Orchestrator
Container Engine
Containerized Applications
Security controls, image security
scanning, centralized management
tools, app lifecycle management,
enterprise management
Scheduling, communication, service
discovery, load balancing, self-
healing, rolling updates, pipeline
management, federation, etc
Runs containers
Application packaged in a standard
way
Docker EE, OpenShift,
control plane
Cluster(s) managed by
Kubernetes, Swarm, Mesos,
Fleet
Docker on Azure/AWS/VM
App with React UI container,
ASP.NET Core API container
What’s it like out there?
What’s it like out there?
Popular images
• Redis: This popular key-value data store is often used as an in-memory database, message queue, or cache.
• Elasticsearch: Full-text search continues to increase in popularity, cracking the top 3 for the first time.
• Registry: 18% of companies running Docker are using Registry, an application for storing and distributing
other Docker images. Registry has been near the top of the list in each edition of this report.
• Postgres: The increasingly popular open source relational database edges out MySQL for the first time in this
ranking.
• MySQL: The most widely used open source database in the world continues to find use in Docker
infrastructure. Adding the MySQL and Postgres numbers, it appears that using Docker to run relational
databases is surprisingly common.
• etcd: The distributed key-value store is used to provide consistent configuration across a Docker cluster.
• Fluentd: This open source "unified logging layer" is designed to decouple data sources from backend data
stores. This is the first time Fluentd has appeared on the list, displacing Logspout from the top 10.
• MongoDB: The widely-used NoSQL datastore.
• RabbitMQ:The open source message broker finds plenty of use in Docker environments.
Benefits of using Docker for development
• Getting an environment running very fast
• Being able to share your environment with others
• Being able to extend your environment very fast and easily (i.e.
adding a Redis server)
• Consistent environments
• You can version development environments
• Development through Production
• Not polluting your computer with frameworks since they are installed
in the containers (git & Docker is all you need!)
You can develop with Docker on:
Docker basics
docker images
docker container ls –a (ps –a)
docker image build -t <yourTag:ImageName> . (docker build …)
docker container run -i -p 80:5000 -v $(pwd):/app -t <yourTag:ImageName>
docker image rm <image name> OLD: (docker rmi ...)
docker container rm $(docker ps –a) OLD: (docker rm ...)
Power clean commands
• Remove stopped containers:
docker rm $(docker ps -a -q)
• Remove all unused containers, volumes, networks and images (both dangling
and unreferenced):
docker system prune NOTE: add -a to remomve unnused images, not just dangling
Additional common commands
docker exec -ti <container ID or name> bash
docker logs <container ID or name>
docker inspect <container ID or name>
• View and manage volumes,
docker volume ls
docker volume inspect <name>
• View and manage networks,
docker network ls
docker network inspect <name>
Docker Compose
• Spin up multiple containers together
• Declare container settings
Common commands:
docker-compose up -d
docker-compose stop
docker-compose down
Other common commands
docker logs <container_name> [--tail 10]
docker exec -it <container_name> sh
docker volume … (ls, inspect, etc)
docker network … (ls, inspect, etc)
Getting ready to develop
1. Install Docker & go to the command line
2. Build an image by creating a Dockerfile & building
3. Create/go into an app directory (create app if needed)
4. Run the container. It will:
1. mount your directory
2. expose port(s)
3. run and watch your app
5. Proceed to develop as usual in your IDE of choice
Lab
Thanks!
@wynv | wyn.vandevanter@excella.com
Next Steps:
• Docker In-Depth, Swarm, Etc Workshop,
https://github.com/jpetazzo/container.training
• Getting Started with Docker Deployment Workshop

More Related Content

What's hot (8)

PPTX
Containerization with Microsoft Azure
Abhimanyu Singhal
 
PDF
AWS ECS Quick Introduction
Vinothini Raju
 
PDF
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Angel Borroy López
 
PPTX
Containerization in microsoft azure
Mohit Chhabra
 
PPTX
Docker on Amazon ECS
Deepak Kumar
 
PPTX
eCAP Developer Walkthru
Robert Patt-Corner
 
PPTX
Migrate Oracle database to Amazon RDS
Jesus Guzman
 
PDF
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Amazon Web Services LATAM
 
Containerization with Microsoft Azure
Abhimanyu Singhal
 
AWS ECS Quick Introduction
Vinothini Raju
 
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Angel Borroy López
 
Containerization in microsoft azure
Mohit Chhabra
 
Docker on Amazon ECS
Deepak Kumar
 
eCAP Developer Walkthru
Robert Patt-Corner
 
Migrate Oracle database to Amazon RDS
Jesus Guzman
 
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Amazon Web Services LATAM
 

Similar to Developer workflow with docker (20)

PDF
Docker-v3.pdf
Bruno Cornec
 
PPTX
Developer workflow with docker
Wyn B. Van Devanter
 
PPTX
ma-formation-en-Docker-jlklk,nknkjn.pptx
imenhamada17
 
PDF
Accelerate your software development with Docker
Andrey Hristov
 
PPTX
Accelerate your development with Docker
Andrey Hristov
 
PDF
A to Z of Docker
Swapnil Jain
 
PDF
A curtain-raiser to the container world Docker & Kubernetes
zekeLabs Technologies
 
PDF
Best Practices for Developing & Deploying Java Applications with Docker
Eric Smalling
 
PPTX
Docker intro
spiddy
 
PDF
codemotion-docker-2014
Carlo Bonamico
 
PPTX
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
PPTX
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Codemotion
 
PPTX
Docker - A curtain raiser to the Container world
zekeLabs Technologies
 
PDF
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
PDF
Cloud Native Computing - Part III - Containers
Linjith Kunnon
 
PDF
Introduction to Docker - Vellore Institute of Technology
Ajeet Singh Raina
 
PPTX
Introduction to docker
Frederik Mogensen
 
PDF
Faster and Easier Software Development using Docker Platform
msyukor
 
PPTX
Dockerize the World - presentation from Hradec Kralove
damovsky
 
Docker-v3.pdf
Bruno Cornec
 
Developer workflow with docker
Wyn B. Van Devanter
 
ma-formation-en-Docker-jlklk,nknkjn.pptx
imenhamada17
 
Accelerate your software development with Docker
Andrey Hristov
 
Accelerate your development with Docker
Andrey Hristov
 
A to Z of Docker
Swapnil Jain
 
A curtain-raiser to the container world Docker & Kubernetes
zekeLabs Technologies
 
Best Practices for Developing & Deploying Java Applications with Docker
Eric Smalling
 
Docker intro
spiddy
 
codemotion-docker-2014
Carlo Bonamico
 
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Codemotion
 
Docker - A curtain raiser to the Container world
zekeLabs Technologies
 
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
Cloud Native Computing - Part III - Containers
Linjith Kunnon
 
Introduction to Docker - Vellore Institute of Technology
Ajeet Singh Raina
 
Introduction to docker
Frederik Mogensen
 
Faster and Easier Software Development using Docker Platform
msyukor
 
Dockerize the World - presentation from Hradec Kralove
damovsky
 
Ad

More from Wyn B. Van Devanter (6)

PPTX
Benefits from AATs
Wyn B. Van Devanter
 
PPTX
.Net Core 1.0 vs .NET Framework
Wyn B. Van Devanter
 
PPTX
Testable requirements
Wyn B. Van Devanter
 
PPTX
Performance tuning an Object-Relational Mapper (ORM)
Wyn B. Van Devanter
 
PPTX
Automated Acceptance Test Practices and Pitfalls
Wyn B. Van Devanter
 
PPTX
Automated Acceptance Tests in .NET
Wyn B. Van Devanter
 
Benefits from AATs
Wyn B. Van Devanter
 
.Net Core 1.0 vs .NET Framework
Wyn B. Van Devanter
 
Testable requirements
Wyn B. Van Devanter
 
Performance tuning an Object-Relational Mapper (ORM)
Wyn B. Van Devanter
 
Automated Acceptance Test Practices and Pitfalls
Wyn B. Van Devanter
 
Automated Acceptance Tests in .NET
Wyn B. Van Devanter
 
Ad

Recently uploaded (20)

PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
Digital Circuits, important subject in CS
contactparinay1
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 

Developer workflow with docker

  • 1. Developer Workflow using Wyn Van Devanter @wynv [email protected] https://github.com/excellalabs/docker-workshop-1 Vic Kumar [email protected]
  • 2. Cloud Enabling Technologies • Virtualization • Private Platform-as-a-Service • Cloud management software • Automation software • Containers Cloud market: 23 billion in 2017, 39 billion by 2020
  • 3. What is Docker? • A VM gives you a OS in a window • A container gives you a file system via background process(es)
  • 4. VMs vs Containers • VMs are good at managing units of hardware resources • Containers are good at managing units of software
  • 7. How do Docker containers work? Images and containers Dockerfile > Image > Container • Dockerfile: text file recipe for image • Image: read-only file system (i.e. template) • Container: copy of an image (i.e. instance) The container is what gets run and where apps go
  • 8. Dockerfile Runs when container starts Runs when image is built
  • 11. Underneath Docker • Docker typically uses the Linux container system (i.e. LXC), which can run apps that run on Linux (now it also uses the new Windows container system) • Linux containers isolate processes • Containers share the host operating system’s kernel - meant to create an environment without the need for a separate kernel
  • 12. Docker on Linux Containers • Docker helps manage containers • Docker abstracts machine-specific settings relating to networking, storing, logging, etc. • Docker makes it easy to create and distribute containers • Docker allows containers to run on many different machines, with many different configurations • 1 process per container philosophy
  • 13. Docker on Mac and Windows • Docker runs containers on Linux kernel via virtual machine • They can now also run on the Windows kernel
  • 14. Benefits of containers • Consistent • Very portable • Fast to spin up • Smaller footprint • Easy to scale
  • 15. Open Container Initiative • Docker is a runtime and container format based on the Open Container Initiative • Create open industry standards around container formats and runtime docker run example.com/org/app:v1.0.0 rkt run example.com/org/app,version=v1.0.0
  • 16. Windows? Docker can also use the container system new in Windows Server 2016 and Windows 10, which can run Windows apps in containers Source: Docker Blog
  • 17. Where can I host applications in containers? • Linux server • VM on Azure, AWS, etc. • Container service like AWS Container Service, Azure Container Service • Many other hosts (Hadoop, etc.) • Using scheduler/orchestrator like ECS, Kubernetes, Swarm, Mesos
  • 18. Building & Deploying Overview • Dev container, big • Prod container, small Dev container - SDK - Source code - System files to support development - Build artifacts Prod container - Build artifacts
  • 19. Fun facts • Average host runs 7 containers but goes way up • 40% of Docker adopters are using an orchestrator • Kubernetes, ECS, Swarm, etc.
  • 20. Container Ecosystem Container Management System Orchestrator Container Engine Containerized Applications Security controls, image security scanning, centralized management tools, app lifecycle management, enterprise management Scheduling, communication, service discovery, load balancing, self- healing, rolling updates, pipeline management, federation, etc Runs containers Application packaged in a standard way Docker EE, OpenShift, control plane Cluster(s) managed by Kubernetes, Swarm, Mesos, Fleet Docker on Azure/AWS/VM App with React UI container, ASP.NET Core API container
  • 21. What’s it like out there?
  • 22. What’s it like out there?
  • 23. Popular images • Redis: This popular key-value data store is often used as an in-memory database, message queue, or cache. • Elasticsearch: Full-text search continues to increase in popularity, cracking the top 3 for the first time. • Registry: 18% of companies running Docker are using Registry, an application for storing and distributing other Docker images. Registry has been near the top of the list in each edition of this report. • Postgres: The increasingly popular open source relational database edges out MySQL for the first time in this ranking. • MySQL: The most widely used open source database in the world continues to find use in Docker infrastructure. Adding the MySQL and Postgres numbers, it appears that using Docker to run relational databases is surprisingly common. • etcd: The distributed key-value store is used to provide consistent configuration across a Docker cluster. • Fluentd: This open source "unified logging layer" is designed to decouple data sources from backend data stores. This is the first time Fluentd has appeared on the list, displacing Logspout from the top 10. • MongoDB: The widely-used NoSQL datastore. • RabbitMQ:The open source message broker finds plenty of use in Docker environments.
  • 24. Benefits of using Docker for development • Getting an environment running very fast • Being able to share your environment with others • Being able to extend your environment very fast and easily (i.e. adding a Redis server) • Consistent environments • You can version development environments • Development through Production • Not polluting your computer with frameworks since they are installed in the containers (git & Docker is all you need!)
  • 25. You can develop with Docker on:
  • 26. Docker basics docker images docker container ls –a (ps –a) docker image build -t <yourTag:ImageName> . (docker build …) docker container run -i -p 80:5000 -v $(pwd):/app -t <yourTag:ImageName> docker image rm <image name> OLD: (docker rmi ...) docker container rm $(docker ps –a) OLD: (docker rm ...)
  • 27. Power clean commands • Remove stopped containers: docker rm $(docker ps -a -q) • Remove all unused containers, volumes, networks and images (both dangling and unreferenced): docker system prune NOTE: add -a to remomve unnused images, not just dangling
  • 28. Additional common commands docker exec -ti <container ID or name> bash docker logs <container ID or name> docker inspect <container ID or name> • View and manage volumes, docker volume ls docker volume inspect <name> • View and manage networks, docker network ls docker network inspect <name>
  • 29. Docker Compose • Spin up multiple containers together • Declare container settings Common commands: docker-compose up -d docker-compose stop docker-compose down
  • 30. Other common commands docker logs <container_name> [--tail 10] docker exec -it <container_name> sh docker volume … (ls, inspect, etc) docker network … (ls, inspect, etc)
  • 31. Getting ready to develop 1. Install Docker & go to the command line 2. Build an image by creating a Dockerfile & building 3. Create/go into an app directory (create app if needed) 4. Run the container. It will: 1. mount your directory 2. expose port(s) 3. run and watch your app 5. Proceed to develop as usual in your IDE of choice
  • 32. Lab
  • 33. Thanks! @wynv | [email protected] Next Steps: • Docker In-Depth, Swarm, Etc Workshop, https://github.com/jpetazzo/container.training • Getting Started with Docker Deployment Workshop

Editor's Notes

  • #27: Downsides: Extra complexity
  • #30: - In the same way, Linux containers (ASP.NET Core)
  • #31: - In the same way, Linux containers (ASP.NET Core)
  • #32: -show images -show all containers
  • #33: -show images -show all containers
  • #34: -show images -show all containers
  • #35: -clean up what is there -show quick running of existing container – with SDK -build a container -run it, stop it. Log in. -change some code and re-run -docker push -clean up -docker-compose
  • #39: -clean up what is there -show quick running of existing container – with SDK -build a container -run it, stop it. Log in. -change some code and re-run -docker push -clean up -docker-compose