SlideShare a Scribd company logo
1 of 12
Download to read offline
Docker
Dockerize all the things!
What is Docker
● Created by Solomon Hykes and owned by Docker Inc
● Abstracts hardware and allows codebases to be shipped inside a “container”
● Containers are the successor to Virtual Machines. Docker utilizes low level
kernel resources including cgroups and namespaces to be more efficient than
virtual machines.
● Isolated, but native access to network, file systems, CPU, memory. Docker
container PIDs start with “1”
● Uses libcontainer (replacing LXC) on Linux, Hyper-V on Windows, xhyve on
OS X
The Case for Docker
● Docker images describes all hardware dependencies for that codebase (e.g.
automake, libmysqlclient-dev, openssl, ruby, etc)
● Aids in simple deployments. You pull down an image, and run a container. It
has no other setup.
● Becoming the industry standard - used by Cisco, Google, IBM, Microsoft, Red
Hat, etc
Images versus Containers
● One image can have many running containers
● An image is the source for your code and its dependencies. Think of it as your
Virtual Machine image
● A container is a running instance of your image. For example, Persuade is
actually 4 app servers, and a background jobs server. These are all the same
image, but we have five containers with two different role configurations*
● Docker allows you to scale easily by just running more containers
*Persuade is not yet Dockerized. This is an example of how it could work.
Installing Docker
● https://docs.docker.com/engine/getstarted/step_one/
docker run hello-world
● Docker checks for the image, sees it is not available locally, and fetches it
● Docker then runs a container from the image
● The container writes a message to your terminal, and exits
Running a Docker image
docker run docker/whalesay cowsay boo
● docker is the shell command
● run starts a container from an <image>
● docker/whalesay is the image name
● cowsay is a shell command INSIDE the image
● boo is an argument to cowsay
● (try other arguments for cowsay)
The Dockerfile
● The building blocks for your application’s image.
● Includes many common tasks like COPY, RUN, USER, ENV
● Scripts how you prepare your application’s dependencies. If you need MySQL
drivers to talk to the database, you first need to install the developer library for
your OS. This might look like:
RUN apt-get install ...
● If you need to add a user to run your application as, it might look like:
RUN adduser app
Interactive - Creating a Dockerfile
● mkdir mydockerbuild
● cd mydockerbuild
● Create a file named “Dockerfile” and insert:
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay
● Try and build your container:
docker build -t docker-whale .
Interactive - Running Your Image
docker run docker-whale
● This is the new image we just built
● Fortunes is a shell command that returns a random fortune
● The result of fortunes is set into cowsay
● The docker image whale_say adds a graphic to cowsay
Getting Help
● Most docker commands follow the convention:
docker <command> <args>
● You can get help by passing --help as an argument. E.g.
docker --help
docker build --help
Sharing a Docker Image
● Images can be (and many are) shared via Docker Hub.
● Images can be pulled similar to git repositories, or run from a local copy
● Docker provides a “hub” for all images at hub.docker.com .
● You can pull any public image, and even host images if you sign up for a free
account.
Docker Usage at Influence Health
● Influence Health has a private Docker Hub account where we host our
Dockerized applications.
● Marketing automation, Jenkins, and Huey are all Dockerized applications
● Other teams make extensive use of Docker in their microservices
● We plan to utilize Docker extensively going forward as we embrace services
and make small, focused applications that are easy to deploy

More Related Content

What's hot

Dockerfile basics | docker workshop #1 at Rackspace
Dockerfile basics | docker workshop #1 at RackspaceDockerfile basics | docker workshop #1 at Rackspace
Dockerfile basics | docker workshop #1 at Rackspace
dotCloud
 

What's hot (20)

presentation on Docker
presentation on Dockerpresentation on Docker
presentation on Docker
 
Academy PRO: Docker. Part 4
Academy PRO: Docker. Part 4Academy PRO: Docker. Part 4
Academy PRO: Docker. Part 4
 
JOSA TechTalk: Introduction to docker
JOSA TechTalk: Introduction to dockerJOSA TechTalk: Introduction to docker
JOSA TechTalk: Introduction to docker
 
Docker 101 - Getting started
Docker 101 - Getting startedDocker 101 - Getting started
Docker 101 - Getting started
 
Docker basics 30_01_21.ppx
Docker basics 30_01_21.ppxDocker basics 30_01_21.ppx
Docker basics 30_01_21.ppx
 
Introdution to Docker (theory and hands on) dbCafé - dbTrento
Introdution to Docker (theory and hands on) dbCafé - dbTrentoIntrodution to Docker (theory and hands on) dbCafé - dbTrento
Introdution to Docker (theory and hands on) dbCafé - dbTrento
 
Docker
DockerDocker
Docker
 
Vagrant and docker
Vagrant and dockerVagrant and docker
Vagrant and docker
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Visualising Basic Concepts of Docker
Visualising Basic Concepts of Docker Visualising Basic Concepts of Docker
Visualising Basic Concepts of Docker
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
 
Docker architecture-04-1
Docker architecture-04-1Docker architecture-04-1
Docker architecture-04-1
 
Introduction To Docker
Introduction To  DockerIntroduction To  Docker
Introduction To Docker
 
Academy PRO: Docker. Part 2
Academy PRO: Docker. Part 2Academy PRO: Docker. Part 2
Academy PRO: Docker. Part 2
 
Intro To Docker
Intro To DockerIntro To Docker
Intro To Docker
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Dockerfile basics | docker workshop #1 at Rackspace
Dockerfile basics | docker workshop #1 at RackspaceDockerfile basics | docker workshop #1 at Rackspace
Dockerfile basics | docker workshop #1 at Rackspace
 
Docker 101 Workshop slides (JavaOne 2017)
Docker 101 Workshop slides (JavaOne 2017)Docker 101 Workshop slides (JavaOne 2017)
Docker 101 Workshop slides (JavaOne 2017)
 
Docker Fundamentals
Docker FundamentalsDocker Fundamentals
Docker Fundamentals
 
Introduction to docker and docker compose
Introduction to docker and docker composeIntroduction to docker and docker compose
Introduction to docker and docker compose
 

Similar to Docker presentation

Docker-Presentation.pptx
Docker-Presentation.pptxDocker-Presentation.pptx
Docker-Presentation.pptx
Vipobav
 

Similar to Docker presentation (20)

Docker workshop GDSC_CSSC
Docker workshop GDSC_CSSCDocker workshop GDSC_CSSC
Docker workshop GDSC_CSSC
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
 
Docker on Power Systems
Docker on Power SystemsDocker on Power Systems
Docker on Power Systems
 
Docker
DockerDocker
Docker
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web Developers
 
Docker Up and Running for Web Developers
Docker Up and Running for Web DevelopersDocker Up and Running for Web Developers
Docker Up and Running for Web Developers
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
Let's dockerize
Let's dockerizeLet's dockerize
Let's dockerize
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tips
 
Docker for Professionals: The Practical Guide
Docker for Professionals: The Practical GuideDocker for Professionals: The Practical Guide
Docker for Professionals: The Practical Guide
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
 
Virtual Machines and Docker
Virtual Machines and DockerVirtual Machines and Docker
Virtual Machines and Docker
 
DOCKER-PIAIC-SLIDES
DOCKER-PIAIC-SLIDESDOCKER-PIAIC-SLIDES
DOCKER-PIAIC-SLIDES
 
Docker-Presentation.pptx
Docker-Presentation.pptxDocker-Presentation.pptx
Docker-Presentation.pptx
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxData
 
Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptx
 
Containers + Docker workshop - part 2
Containers + Docker workshop - part 2Containers + Docker workshop - part 2
Containers + Docker workshop - part 2
 
Docker, LinuX Container
Docker, LinuX ContainerDocker, LinuX Container
Docker, LinuX Container
 
Docker quick start
Docker quick startDocker quick start
Docker quick start
 

More from thehoagie

Converting your JS library to a jQuery plugin
Converting your JS library to a jQuery pluginConverting your JS library to a jQuery plugin
Converting your JS library to a jQuery plugin
thehoagie
 

More from thehoagie (11)

Pair programming
Pair programmingPair programming
Pair programming
 
Database 101
Database 101Database 101
Database 101
 
Testing
TestingTesting
Testing
 
Hubot
HubotHubot
Hubot
 
Git Pro Tips
Git Pro TipsGit Pro Tips
Git Pro Tips
 
Null object pattern
Null object patternNull object pattern
Null object pattern
 
Big tables and you - Keeping DDL operatations fast
Big tables and you - Keeping DDL operatations fastBig tables and you - Keeping DDL operatations fast
Big tables and you - Keeping DDL operatations fast
 
Angular.js - An introduction for the unitiated
Angular.js - An introduction for the unitiatedAngular.js - An introduction for the unitiated
Angular.js - An introduction for the unitiated
 
Regular expression presentation for the HUB
Regular expression presentation for the HUBRegular expression presentation for the HUB
Regular expression presentation for the HUB
 
Converting your JS library to a jQuery plugin
Converting your JS library to a jQuery pluginConverting your JS library to a jQuery plugin
Converting your JS library to a jQuery plugin
 
Active records before_type_cast
Active records before_type_castActive records before_type_cast
Active records before_type_cast
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 

Docker presentation

  • 2. What is Docker ● Created by Solomon Hykes and owned by Docker Inc ● Abstracts hardware and allows codebases to be shipped inside a “container” ● Containers are the successor to Virtual Machines. Docker utilizes low level kernel resources including cgroups and namespaces to be more efficient than virtual machines. ● Isolated, but native access to network, file systems, CPU, memory. Docker container PIDs start with “1” ● Uses libcontainer (replacing LXC) on Linux, Hyper-V on Windows, xhyve on OS X
  • 3. The Case for Docker ● Docker images describes all hardware dependencies for that codebase (e.g. automake, libmysqlclient-dev, openssl, ruby, etc) ● Aids in simple deployments. You pull down an image, and run a container. It has no other setup. ● Becoming the industry standard - used by Cisco, Google, IBM, Microsoft, Red Hat, etc
  • 4. Images versus Containers ● One image can have many running containers ● An image is the source for your code and its dependencies. Think of it as your Virtual Machine image ● A container is a running instance of your image. For example, Persuade is actually 4 app servers, and a background jobs server. These are all the same image, but we have five containers with two different role configurations* ● Docker allows you to scale easily by just running more containers *Persuade is not yet Dockerized. This is an example of how it could work.
  • 5. Installing Docker ● https://docs.docker.com/engine/getstarted/step_one/ docker run hello-world ● Docker checks for the image, sees it is not available locally, and fetches it ● Docker then runs a container from the image ● The container writes a message to your terminal, and exits
  • 6. Running a Docker image docker run docker/whalesay cowsay boo ● docker is the shell command ● run starts a container from an <image> ● docker/whalesay is the image name ● cowsay is a shell command INSIDE the image ● boo is an argument to cowsay ● (try other arguments for cowsay)
  • 7. The Dockerfile ● The building blocks for your application’s image. ● Includes many common tasks like COPY, RUN, USER, ENV ● Scripts how you prepare your application’s dependencies. If you need MySQL drivers to talk to the database, you first need to install the developer library for your OS. This might look like: RUN apt-get install ... ● If you need to add a user to run your application as, it might look like: RUN adduser app
  • 8. Interactive - Creating a Dockerfile ● mkdir mydockerbuild ● cd mydockerbuild ● Create a file named “Dockerfile” and insert: FROM docker/whalesay:latest RUN apt-get -y update && apt-get install -y fortunes CMD /usr/games/fortune -a | cowsay ● Try and build your container: docker build -t docker-whale .
  • 9. Interactive - Running Your Image docker run docker-whale ● This is the new image we just built ● Fortunes is a shell command that returns a random fortune ● The result of fortunes is set into cowsay ● The docker image whale_say adds a graphic to cowsay
  • 10. Getting Help ● Most docker commands follow the convention: docker <command> <args> ● You can get help by passing --help as an argument. E.g. docker --help docker build --help
  • 11. Sharing a Docker Image ● Images can be (and many are) shared via Docker Hub. ● Images can be pulled similar to git repositories, or run from a local copy ● Docker provides a “hub” for all images at hub.docker.com . ● You can pull any public image, and even host images if you sign up for a free account.
  • 12. Docker Usage at Influence Health ● Influence Health has a private Docker Hub account where we host our Dockerized applications. ● Marketing automation, Jenkins, and Huey are all Dockerized applications ● Other teams make extensive use of Docker in their microservices ● We plan to utilize Docker extensively going forward as we embrace services and make small, focused applications that are easy to deploy