Docker and Containers: The Big Picture

These are my notes from Nigel Poulton’s course on PluralSight, “Docker and Containers: The Big Picture“. Do check out his videos, he’s an easy guy to listen to and explains the subject matter in a digestible manner. Yo can also follow him on Twitter – @nigelpoulton

What are containers?

Hypervisor

  • Takes slice of physical server resource to run OS and apps.
  • OS uses RAM, CPU & disk space just to run.
  • Licence costs for OS for each virtual server.
  • Resource and budget cost – CAPEX (Capital Expenditure) and OPEX (Operational Expenditure).
  • Requirement to manage and patch each VM.

Containers

  • One physical server, one OS then e.g. four containers hosting four apps.

Container Demo

  • Download container image.
  • Create app from image.
  • Start container, stop container.
  • Able to map port of host to port within the container.

Containers = Virtualisation 2.0

The Docker Project

  • Open Source, not owned by Docker Inc.
  • Build better, Ship better and Deploy better.
  • Docker Hub
    • Store and retrieve Docker images.
    • >240k repositories.
    • Public and Private repositories.

Preparing to Thrive

  • Get hands on with it.
  • Start making it official: CI/CD workflows.
  • Distributed apps/services – run some in containers, some  in VMs (infra services).
  • Tools: orchestrate deployments, look at logs.
  • Don’t neglect infrastructure to support containers: orchestration, clustering, management, monitoring and logging.
  • Datadog stats (datadoghq.com): companies who adopted containers tripled the number in use within six months.

What Kind of Work Will Containers Do?

  • Stateless: does not keep any changes or data, e.g. web server.
  • Stateful: keeps changes and data, e.g. database server.
  • Containers can do both.
  • Can put legacy apps in containers but missing the point – opportunity to rethink: micro services (many services combine to create one app).
  • Docker containers persist data just the same as a VM does.

Docker Hub (Container Registries)

  • Place to store and retrieve container images.
  • docker pull <image name> e.g. docker pull Mongo
    • pulls Mongo container image.
  • Registry can have one or many repositories.
  • Images can be public or private.
    • Public images can be pulled by anyone but only pushed by authorised users.
  • Can create private repositories – within corporate firewall.
  • Docker Trusted Registry (DTR).

Automated Workflow

  • App Update -> Software Repo -> Testing -> Container Registry -> Deployment -> On Premise/Cloud
Docker Automated Workflow
Docker Automated Workflow

Ready for Production & Enterprise?

  • Docker Engine available in different versions:
    • Experimental
    • Stable
    • Commercially Supported (CR)
  • Docker Swarm (clustering) is laid on top of several Docker engines.
  • Docker Content Trust

Container Orchestration

Orchestration: taking something that was manual and automating it.

  • Apps compromise multiple parts.
  • Define services/components that make up the app.
  • Define how they fit together: networking and API calls.
  • Deploy to containers.
  • Docker Machine: Provisions Docker hosts/engines.
  • Docker Compose: Compose multi-container apps.
  • Docker Swarm: Schedule containers over multiple Docker engines.
  • Tutum: Sits across Machine, Compose & Swarm providing a UI.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *