SlideShare a Scribd company logo
1 of 33
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
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

(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microservice(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microserviceAmazon Web Services
 
AWS ECS Meetup Talentica
AWS ECS Meetup TalenticaAWS ECS Meetup Talentica
AWS ECS Meetup TalenticaAnshul Patel
 
Getting Started with Docker On AWS
Getting Started with Docker On AWSGetting Started with Docker On AWS
Getting Started with Docker On AWSAmazon Web Services
 
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...Amazon Web Services
 
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...Amazon Web Services
 
Containerization with Microsoft Azure
Containerization with Microsoft AzureContainerization with Microsoft Azure
Containerization with Microsoft AzureAbhimanyu Singhal
 
Continuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSContinuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSAmazon Web Services
 
AWS ECS Quick Introduction
AWS ECS Quick IntroductionAWS ECS Quick Introduction
AWS ECS Quick IntroductionVinothini Raju
 
Micrsoservices unleashed with containers and ECS
Micrsoservices unleashed with containers and ECSMicrsoservices unleashed with containers and ECS
Micrsoservices unleashed with containers and ECSAmazon Web Services
 
Getting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container ServiceGetting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container ServiceAmazon Web Services
 
Workshop: Serverless DevOps to the Rescue
Workshop: Serverless DevOps to the RescueWorkshop: Serverless DevOps to the Rescue
Workshop: Serverless DevOps to the RescueAmazon Web Services
 
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...Amazon Web Services
 
Advanced Container Management and Scheduling
Advanced Container Management and SchedulingAdvanced Container Management and Scheduling
Advanced Container Management and SchedulingAmazon Web Services
 
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaDocker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaAngel Borroy López
 
Containerization in microsoft azure
Containerization in microsoft azureContainerization in microsoft azure
Containerization in microsoft azureMohit Chhabra
 
Docker on Amazon ECS
Docker on Amazon ECSDocker on Amazon ECS
Docker on Amazon ECSDeepak Kumar
 
Getting Started with Docker on AWS - DevDay Los Angeles 2017
Getting Started with Docker on AWS - DevDay Los Angeles 2017Getting Started with Docker on AWS - DevDay Los Angeles 2017
Getting Started with Docker on AWS - DevDay Los Angeles 2017Amazon Web Services
 
Migrate Oracle database to Amazon RDS
Migrate Oracle database to Amazon RDSMigrate Oracle database to Amazon RDS
Migrate Oracle database to Amazon RDSJesus Guzman
 

What's hot (20)

(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microservice(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microservice
 
AWS ECS Meetup Talentica
AWS ECS Meetup TalenticaAWS ECS Meetup Talentica
AWS ECS Meetup Talentica
 
Getting Started with Docker On AWS
Getting Started with Docker On AWSGetting Started with Docker On AWS
Getting Started with Docker On AWS
 
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
Managing Docker & ECS Based Applications with AWS Elastic Beanstalk - DevDay ...
 
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...
 
AWS ECS workshop
AWS ECS workshopAWS ECS workshop
AWS ECS workshop
 
Containerization with Microsoft Azure
Containerization with Microsoft AzureContainerization with Microsoft Azure
Containerization with Microsoft Azure
 
Continuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSContinuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECS
 
AWS ECS Quick Introduction
AWS ECS Quick IntroductionAWS ECS Quick Introduction
AWS ECS Quick Introduction
 
Micrsoservices unleashed with containers and ECS
Micrsoservices unleashed with containers and ECSMicrsoservices unleashed with containers and ECS
Micrsoservices unleashed with containers and ECS
 
Getting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container ServiceGetting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container Service
 
Workshop: Serverless DevOps to the Rescue
Workshop: Serverless DevOps to the RescueWorkshop: Serverless DevOps to the Rescue
Workshop: Serverless DevOps to the Rescue
 
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
AWS Elastic Beanstalk: Running Multi-Container Docker Applications - DevDay L...
 
Advanced Container Management and Scheduling
Advanced Container Management and SchedulingAdvanced Container Management and Scheduling
Advanced Container Management and Scheduling
 
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaDocker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
 
Containerization in microsoft azure
Containerization in microsoft azureContainerization in microsoft azure
Containerization in microsoft azure
 
Docker on Amazon ECS
Docker on Amazon ECSDocker on Amazon ECS
Docker on Amazon ECS
 
eCAP Developer Walkthru
eCAP Developer WalkthrueCAP Developer Walkthru
eCAP Developer Walkthru
 
Getting Started with Docker on AWS - DevDay Los Angeles 2017
Getting Started with Docker on AWS - DevDay Los Angeles 2017Getting Started with Docker on AWS - DevDay Los Angeles 2017
Getting Started with Docker on AWS - DevDay Los Angeles 2017
 
Migrate Oracle database to Amazon RDS
Migrate Oracle database to Amazon RDSMigrate Oracle database to Amazon RDS
Migrate Oracle database to Amazon RDS
 

Similar to Developer workflow with docker

Michigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFMichigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFJeffrey Sica
 
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...Ido Flatow
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the Worlddamovsky
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
Docker for developers
Docker for developersDocker for developers
Docker for developersAnvay Patil
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with DockerRavindu Fernando
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deploymentjavaonfly
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSFrank Munz
 
Docker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to DockerDocker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to Dockerjonatanblue
 
Docker interview Questions-1.pdf
Docker interview Questions-1.pdfDocker interview Questions-1.pdf
Docker interview Questions-1.pdfYogeshwaran R
 
aws 2023 nov docker.pptx
aws 2023 nov docker.pptxaws 2023 nov docker.pptx
aws 2023 nov docker.pptxmalikawannasi
 

Similar to Developer workflow with docker (20)

Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
Docker.pptx
Docker.pptxDocker.pptx
Docker.pptx
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Michigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFMichigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOF
 
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
 
Docker slides
Docker slidesDocker slides
Docker slides
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 
Docker Workshop
Docker WorkshopDocker Workshop
Docker Workshop
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
Docker
DockerDocker
Docker
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCS
 
Docker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to DockerDocker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to Docker
 
Docker handons-workshop-for-charity
Docker handons-workshop-for-charityDocker handons-workshop-for-charity
Docker handons-workshop-for-charity
 
Docker interview Questions-1.pdf
Docker interview Questions-1.pdfDocker interview Questions-1.pdf
Docker interview Questions-1.pdf
 
What is Docker?
What is Docker?What is Docker?
What is Docker?
 
aws 2023 nov docker.pptx
aws 2023 nov docker.pptxaws 2023 nov docker.pptx
aws 2023 nov docker.pptx
 

More from Wyn B. Van Devanter

Performance tuning an Object-Relational Mapper (ORM)
Performance tuning an Object-Relational Mapper (ORM)Performance tuning an Object-Relational Mapper (ORM)
Performance tuning an Object-Relational Mapper (ORM)Wyn B. Van Devanter
 
Automated Acceptance Test Practices and Pitfalls
Automated Acceptance Test Practices and PitfallsAutomated Acceptance Test Practices and Pitfalls
Automated Acceptance Test Practices and PitfallsWyn B. Van Devanter
 
Automated Acceptance Tests in .NET
Automated Acceptance Tests in .NETAutomated Acceptance Tests in .NET
Automated Acceptance Tests in .NETWyn B. Van Devanter
 

More from Wyn B. Van Devanter (6)

Benefits from AATs
Benefits from AATsBenefits from AATs
Benefits from AATs
 
.Net Core 1.0 vs .NET Framework
.Net Core 1.0 vs .NET Framework.Net Core 1.0 vs .NET Framework
.Net Core 1.0 vs .NET Framework
 
Testable requirements
Testable requirementsTestable requirements
Testable requirements
 
Performance tuning an Object-Relational Mapper (ORM)
Performance tuning an Object-Relational Mapper (ORM)Performance tuning an Object-Relational Mapper (ORM)
Performance tuning an Object-Relational Mapper (ORM)
 
Automated Acceptance Test Practices and Pitfalls
Automated Acceptance Test Practices and PitfallsAutomated Acceptance Test Practices and Pitfalls
Automated Acceptance Test Practices and Pitfalls
 
Automated Acceptance Tests in .NET
Automated Acceptance Tests in .NETAutomated Acceptance Tests in .NET
Automated Acceptance Tests in .NET
 

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

Developer workflow with docker

  • 1. Developer Workflow using Wyn Van Devanter @wynv wyn.vandevanter@excella.com https://github.com/excellalabs/docker-workshop-1 Vic Kumar vic.kumar@excella.com
  • 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
  • 6.
  • 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 | wyn.vandevanter@excella.com Next Steps: • Docker In-Depth, Swarm, Etc Workshop, https://github.com/jpetazzo/container.training • Getting Started with Docker Deployment Workshop

Editor's Notes

  1. Downsides: Extra complexity
  2. - In the same way, Linux containers (ASP.NET Core)
  3. - In the same way, Linux containers (ASP.NET Core)
  4. -show images -show all containers
  5. -show images -show all containers
  6. -show images -show all containers
  7. -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
  8. -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