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

Docker

Docker is an open-source project that automates deployment of applications inside software containers. It provides an additional layer of abstraction and automation of operating system-level virtualization on Linux. Containers allow for isolated execution of applications and their dependencies, while using fewer resources than virtual machines. The document then discusses key Docker concepts like images, containers, volumes and networking. It also provides examples of using Dockerfiles to build images and running containers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
169 views

Docker

Docker is an open-source project that automates deployment of applications inside software containers. It provides an additional layer of abstraction and automation of operating system-level virtualization on Linux. Containers allow for isolated execution of applications and their dependencies, while using fewer resources than virtual machines. The document then discusses key Docker concepts like images, containers, volumes and networking. It also provides examples of using Dockerfiles to build images and running containers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 23

Docker

Agenda
• What is Docker?
– Docker vs. Virtual Machine
– History, Status, Run Platforms
– Hello World
• Images and Containers
• Volume Mounting, Port Publishing, Linking
• Around Docker, Docker Use Cases
• Hands-On Workshop

2
What is Docker?
Docker is an open-source project that
automates the deployment
of applications inside software
containers, by providing an additional
layer of abstraction and automation
of operating system–level
virtualization on Linux.
[Source: en.wikipedia.org]

3
Docker: Name
[www.docker.com]

docker [naut.]: der Dockarbeiter, der


Hafenarbeiter
Source: leo.org
• Provide a uniformed wrapper around a
software package: «Build, Ship and Run Any
App, Anywhere» [www.docker.com]
– Similar to shipping containers: The
container is always the same, regardless
of the contents and thus fits on all trucks,
cranes, ships, ...

4
Docker vs. Virtual Machine

Source: https://www.docker.com/whatisdocker/

5
Docker Technology
• libvirt: Platform Virtualization
• LXC (LinuX Containers): Multiple
isolated Linux systems (containers)
on a single host
• Layered File System

[Source: https://docs.docker.com/terms/layer/]

6
Docker History
• 2013-03: Releases as Open
Source
• 2013-09: Red Hat collaboration
(Fedora, RHEL, OpenShift)
• 2014-03: 34th most starred GitHub
project
• 2014-05: JAX Innovation Award
(most innovative open technology)

7
Technology Radar
• 2014-01: Assess
• 2014-07: Trial
• Source:
http://www.thoughtworks.com/radar
/tools/docker

8
Run Platforms
• Various Linux distributions
(Ubuntu, Fedora, RHEL, Centos,
openSUSE, ...)
• Cloud (Amazon EC2, Google
Compute Engine, Rackspace)
• 2014-10: Microsoft announces
plans to integrate Docker with next
release of Windows Server

9
Hello World
Simple Command - Ad-Hoc
Container
• docker run ubuntu echo
Hello World
– docker images [-a]
– docker ps –a

10
Terminology - Image
• Persisted snapshot that can be run
– images: List all local images
– run: Create a container from an image and
execute a command in it
– tag: Tag an image
– pull: Download image from repository
– rmi: Delete a local image
• This will also remove intermediate images if no longer
used

11
Terminology - Container
• Runnable instance of an image
– ps: List all running containers
– ps –a: List all containers (incl. stopped)
– top: Display processes of a container
– start: Start a stopped container
– stop: Stop a running container
– pause: Pause all processes within a container
– rm: Delete a container
– commit: Create an image from a container

12
Image vs. Container
Base Image run Container
ubuntu:latest cid1

base image cmd  new state

New Image commit Container


iid1 cid1
run
Container
cid2
Container
cid3
Container
cid4

13
Dockerfile
• Create images automatically using
a build script: «Dockerfile»
• Can be versioned in a version
control system like Git or SVN,
along with all dependencies
• Docker Hub can automatically build
images based on dockerfiles on
Github

14
Dockerfile Example
• Dockerfile:
– FROM ubuntu
ENV DOCK_MESSAGE Hello My World
ADD dir /files
CMD ["bash", "someScript"]
• docker build [DockerFileDir]
• docker inspect [imageId]

15
Mount Volumes
• docker run –ti –v
/hostLog:/log ubuntu
• Run second container: Volume can
be shared
– docker run –ti --volumes-
from firstContainerName
ubuntu

16
Publish Port
• docker run –t –p 8080:80
ubuntu nc –l 80
– Map container port 80 to host port
8080
– Check on host: nc localhost 8080
• Link with other docker container
– docker run -ti --link
containerName:alias ubuntu
– See link info with set

17
Around Docker
• Docker Images: Docker Hub
• Vagrant: «Docker for VMs»
• Automated Setup
– Puppet, Chef, Ansible, ...
• Docker Ecosystem
– skydock / skydns
– fig

18
Docker Hub
• Public repository of Docker images
– https://hub.docker.com/
– docker search [term]
• Automated: Has been
automatically built from Dockerfile
– Source for build is available on
GitHub

19
Docker Use Cases
• Development Environment
• Environments for Integration Tests
• Quick evaluation of software
• Microservices
• Multi-Tenancy
• Unified execution environment (dev
 test  prod (local, VM, cloud,
...)

21
Documentation
• Docker homepage: https://www.docker.com/
– Introduction:
https://www.docker.com/whatisdocker/
– Online tutorial: https://www.docker.com/tryit/
– Installation and user guide:
https://docs.docker.com/
• InfTec TecBoard:
https://inftec.atlassian.net/wiki/display/TEC/D
ocker
– Includes this presentation

22
Hands On
• https://bitbucket.org/inftec/vagrant-
playground/branch/docker-demo
• Multi-Container-Setup
– Logging-Container
– Echo-Container
– Client-Container

23
24

You might also like