containers and docker · app a b bins/libs app a guest os bins/libs app b guest os bins/libs app b...

16
1 © 2018 IBM Corporation Containers and Docker Concepts

Upload: others

Post on 04-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

1© 2018 IBM Corporation

Containers and DockerConcepts

Page 2: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

What are containers?

2© 2018 IBM Corporation

A standard way to package an application and all its dependencies so that it can be moved between environments and run without change

Work by hiding the differences between applications inside the container so that everything outside the container can be standardized

Docker: provides a standard way to create images for Linux Containers

Linux Containers (LXC) details:• An isolated user space within a running Linux

OS• Shared kernel across containers• Direct device access• All packages and data in an isolated runtime,

saved as a filesystem• Resource management implemented with

control groups (cgroups)• Resource isolation through namespaces

Page 3: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

App portability

Isolated containers package the application, dependencies, and configurations together. These containers can then seamlessly move across environments and infrastructures.

3© 2018 IBM Corporation

Why use containers?Containers are a critical foundation for distributed apps in hybrid clouds

Resource efficiency

Lightweight containers run on a single machine and share the same OS kernel while images are layered file systems sharing common files to make efficient use of RAM and disk and start instantly.

Ship more software

Accelerate development, CI and CD pipelines by eliminating headaches of setting up environments and dealing with differences between environments. On average, Docker users ship software more frequently.

Page 4: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

The challenge

4© 2018 IBM Corporation

Multiplicity of Stacks

Multiplicity of hardware

environments

DevelopmentVM

QA server Customer Data Center

Public Cloud Contributor’s laptop

Production Cluster

Static website:• Nginx• OpenSSL• Bootstrap 2• ModSecurity

User DB:• PostgreSQL• pgv8• v8

Analytics DB:• Hadoop• Hive• Thrift• OpenJDK

Queue:• Redis• Redis-

sentinel

Web front end:• Ruby• Rails• Sass• Unicom

Do services and apps interact

appropriately?

Can I migrate smoothly and

quickly?

Page 5: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

Docker: A shipping container for code

5© 2018 IBM Corporation

…that can be manipulated by using standard operations, and run consistently on virtually any hardware platform.

An engine that enables any payload to be encapsulated as a lightweight, portable, self-sufficient container…

Static website User DB Analytics DBQueueWeb front endMultiplicity of Stacks

Multiplicity of hardware

environments

Do services and apps interact

appropriately?

Can I migrate smoothly and

quickly?

DevelopmentVM

QA server Customer Data Center

Public Cloud Contributor’s laptop

Production Cluster

Page 6: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

Benefits of using containers

Can run on many different platforms

Processes share OS resources, but remain segregated

Isolate the different requirements between the applications that run inside the container, and the operations that run outside the container

Quick and easy to create, delete, start, stop, download, and share

Use hardware resources more efficiently than virtual machines, and are more lightweight

Can be treated as unchangeable

© Copyright IBM Corporation 2018

Page 7: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

7© 2018 IBM Corporation

Virtual machines versus containers

Containers are isolated, but share OS and, where appropriate, bins/libraries

ServerHost OS

Hypervisor

Virt

ual m

achi

nes

ServerHost OS

bins/libs bins/libs

App B

bins/libs

App CApp CApp C

cont

aine

rs

App AApp B

bins/libs

App A

Guest OS

bins/libs

App B

Guest OS

bins/libs

App B

Guest OS

Page 8: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

Dev versus Ops

8© 2018 IBM Corporation

Separation of concerns• A container separates and bridges the Dev

and Ops in DevOps

• Dev focuses on the application environment

• Ops focuses on the deployment environment

Dev Ops

• Code• Libraries• Configuration• Server runtime• OS

• Logging• Remote access• Network configuration• Monitoring

Page 9: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

Open Container Initiative (OCI)

A Linux Foundation project that is developing a governed container standard

Rocket (rkt)An emerging container standard from CoreOS, the company that developed etcd

GardenCloud Foundry component for creating and managing containers

DockerThe most common standard, made Linux containers usable by the masses

9© 2018 IBM Corporation

Container ecosystem

Page 10: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

Docker mission

10© 2018 IBM Corporation

Docker is an open platform for building distributed applications for developers and system administrators.

Build Ship Run

Anywhere

Any App

Page 11: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

Open governanceDocker, the Open Container Initiative (OCI), and the Cloud Native Computing Foundation (CNCF) are jointly developing container standards

Open SoftwareLaunched March 2013

2.0+ billion downloads of Docker images

11© 2018 IBM Corporation

Open DesignContributors include IBM, Red Hat, Google, Microsoft, VMware, AWS, Rackspace, and others

Open Contribution2000+ contributors

#2 most popular project

185 community meet-up groups in 58 countries

Docker adoption

Enables application development efficiency, making deployment more efficient, and eliminating vendor lock-in with true portability

Page 12: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

Docker basic concepts

12© 2018 IBM Corporation

Image

A read-only snapshot of a container that is stored in a Docker registry and used as a template for building containers

Container

The standard unit in which the application service resides or is transported

Registry

Available in SaaS or Enterprise to deploy anywhere you choose Stores, distributes and shares container images

Engine

A program that creates, ships and runs application containersRuns on any physical or virtual machine locally, in private, or public cloud

Client

Communicates with engine to execute commands

SaaS Enterprise

>_ docker

Page 13: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

Local host

Images

DockerHub

Docker Architecture

13© 2018 IBM Corporation

>_ docker

Images

Privateregistry

Registries

daemon

Remote host

daemon

HostsClients

Docker engine

containers

containers

Docker client

Page 14: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

Typical Workflow

14© 2018 IBM Corporation

host

Images

DockerRegistry

daemon

container

image

Push/pull

Build, tag

runcommit

Dockerfile

Page 15: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

Container 1

Docker shared and layered file systems technology

15© 2018 IBM Corporation

Base image(read-only)

Thin, writable layer

Base image

Container 2

Base image(read-only)

Thin, writable layer

Container 3

Base image(read-only)

Thin, writable layer

Docker uses a copy-on-write (union) file system

New files and edits are only visible to current and above layers

Saves disk space and allows images to build faster

Maintains filesystem integrity by isolating the contents

Page 16: Containers and Docker · App A B bins/libs App A Guest OS bins/libs App B Guest OS bins/libs App B Guest OS. Dev versus Ops ... a governed container standard Rocket (rkt) An emerging

16© 2018 IBM Corporation