0% found this document useful (0 votes)
25 views

What Is Docker? and Why?: Docker Is A Container Technology: A Tool For Creating and Managing Containers

Docker is a tool that allows users to build and manage containers. Containers standardize software environments and ensure applications always run the same, regardless of where they are deployed. This solves issues like inconsistent development environments between teams and projects. Containers provide portable and reproducible environments without the overhead of virtual machines. Docker simplifies building and sharing containers through its ecosystem of tools like Docker Engine, Docker Hub for images, and Docker Compose for multi-container applications.

Uploaded by

Atik
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

What Is Docker? and Why?: Docker Is A Container Technology: A Tool For Creating and Managing Containers

Docker is a tool that allows users to build and manage containers. Containers standardize software environments and ensure applications always run the same, regardless of where they are deployed. This solves issues like inconsistent development environments between teams and projects. Containers provide portable and reproducible environments without the overhead of virtual machines. Docker simplifies building and sharing containers through its ecosystem of tools like Docker Engine, Docker Hub for images, and Docker Compose for multi-container applications.

Uploaded by

Atik
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

What is Docker? And Why?

Docker is a container technology: A tool for creating and managing containers

The same container always


yields the exact same
Container application and execution
behavior! No matter where or
by whom it might be executed.
A standardized unit of
software
Support for Containers is built
into modern operating systems!
A package of code and
dependencies to run that
Docker simplifies the creation
code (e.g. NodeJS code + the
and management of such
NodeJS runtime)
containers
Let’s Take A Step Back

Dishes

Food

A Picnic Basket
Let’s Take A Step Back

A Picnic Basket

It contains food and You can share it and use


It’s portable
dishes it everywhere

No special environment
or tools are required
Why Containers?

Why would we want independent, standardized “application packages”?

Different Development Clashing Tools / Versions


Different Development &
Environments Within a Between Different
Production Environments
Team / Company Projects

Every team member When switching between


We want to build and test
should have the exactly (!) projects, tools used in
in exactly (!) the same
same environment when project A should not clash
environment as we later
working on the same with tools used in project
run our app in
project B
The Problems

Environment: The runtimes, languages, frameworks


you need for development

Development Environment Production Environment

often not the same

Development Environment Development Environment


for Employee A for Employee B
often not the same

Tools & Libraries required Tools & Libraries required


for Project A for Project B

often not the same


We Want Reliability & Reproducible Environments

We want to have the exact same environment for


development and production è This ensures that
it works exactly as tested

It should be easy to share a common


development environment/ setup with (new)
employees and colleagues

We don’t want to uninstall and re-install local


dependencies and runtimes all the time
Solution: Virtual Machines / Virtual Operating Systems

App A App B App C

Libraries, Dependencies, Libraries, Dependencies, Libraries, Dependencies,


Tools Tools Tools

Virtual OS Virtual OS Virtual OS


(e.g. Linux) (e.g. Linux) (e.g. Linux)

Your Operating System


Solution: Virtual Machines / Virtual Operating Systems

App A App B App C

Libraries, Dependencies, Libraries, Dependencies, Libraries, Dependencies,


Tools Tools Tools

Virtual OS Virtual OS Virtual OS


(e.g. Linux) (e.g. Linux) (e.g. Linux)

Wastes a lot of space on your hard drive and tends


to be slow

Your Operating System


Virtual Machines / Virtual OS: Summary

Pro Con

Redundant duplication, waste of


Separated environments
space

Environment-specific Performance can be slow, boot


configurations are possible times can be long

Reproducing on another computer/


Environment configurations can be
server is possible but may still be
shared and reproduced reliably
tricky
Docker Helps You Build & Manage “Containers”

Container Container Container

App A App B App C

Libraries, Dependencies, Libraries, Dependencies, Libraries, Dependencies,


Tools Tools Tools

Docker Engine

OS Built-in / Emulated Container Support

Your Operating System


Containers vs Virtual Machines

Docker Containers Virtual Machines

Low impact on OS, very fast, Bigger impact on OS, slower,


minimal disk space usage higher disk space usage

Sharing, re-building and Sharing, re-building and


distribution is easy distribution can be challenging

Encapsulate apps/ environments Encapsulate “whole machines”


instead of “whole machines” instead of just apps/ environments
Docker Setup

macOS Windows Linux

Require- Require-
Require- Require-
ments not ments not
ments met ments met Install Docker Engine on
met met
Linux
(see attached resources)

Install Docker Toolbox

Install Docker Desktop


Docker Tools & Building Blocks

Docker Desktop (incl.


Docker Engine Docker Hub Docker Compose
Daemon & CLI)

Kubernetes
Course Outline

Getting Started & Overview

Foundation ”Real Life” Kubernetes

Kubernetes Introduction
Images & Containers Multi-Container Projects
& Basics

Kubernetes: Data &


Using Docker-Compose
Volumes
Data & Volumes
(in Containers)
“Utility Containers” Kubernetes: Networking

Containers & Deploying Docker Deploying a Kubernetes


Networking Containers Cluster
Getting The Most Out Of This Course

At your pace – use the


Watch the Videos
video player controls

Pause videos, code


Code along
along, code ahead

Repeat videos or
Repeat Concepts
sections if unclear

Search the web in case


Google, Stackoverflow
of errors

Ask and help others in


Ask & Answer in Q&A Section
the Q&A board

You might also like