Quotes and notes from reading up the new tech stack I’m working with. I often find Wikipedia useful for starting to build a mental modal of what stuff is.

Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in containers
Kubernetes
k8s
is an open-source container-orchestration system for automating application deployment, scaling, and management
OpenShift is a family of containerization software developed by Red Hat
OpenShift Origin (aka OKD) is the upstream community project, built around a core of Docker container packaging and Kubernetes container cluster management
Minishift is a tool that helps you run OKD locally by launching a single-node OKD cluster inside a virtual machine
Docker Machine is a tool to install Docker Engine on virtual hosts, and manage the hosts with docker-machine commands
kubectl is a command-line tool to run commands against Kubernetes clusters
Ansible is an open-source software provisioning, configuration management, and application-deployment tool
nodemon a tool that helps develop node.js based applications by automatically restarting the node application when file changes in the directory are detected
nodeshift an opinionated command line application and programmable API that you can use to deploy Node.js projects to OpenShift

“What’s the difference between Docker Engine and Docker Machine?”

When people say “Docker” they typically mean Docker Engine, the client-server application made up of the Docker daemon, a REST API that specifies interfaces for interacting with the daemon, and a command line interface (CLI) client that talks to the daemon (through the REST API wrapper).

Docker Machine is a tool for provisioning and managing your Dockerized hosts (hosts with Docker Engine on them). Typically, you install Docker Machine on your local system.

docs.docker.com/machine/overview/

Pssst… Useful link to Download Docker CE without logging in

nodeshift breaking change


Reading up more on concepts

What is a Container?

A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.

Virtual machine

is an emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination.

kernel

is a computer program that is the core of a computer’s operating system, with complete control over everything in the system. The kernel facilitates interactions between hardware and software components.

OS-level virtualization

refers to an operating system paradigm in which the kernel allows the existence of multiple isolated user space instances. Such instances, called containers, Zones, virtual private servers, partitions, virtual environments, virtual kernel, or jails, may look like real computers from the point of view of programs running in them.

OpenShift Core Concepts

containers are lightweight mechanisms for isolating running processes so that they are limited to interacting with only their designated resources. (…) provides a single service (often called a “micro-service”), such as a web server or a database

An image is a binary that includes all of the requirements for running a single container, as well as metadata describing its needs and capabilities. (…) Containers only have access to resources defined in the image unless you give the container additional access when creating it.

pods are one or more containers deployed together on one host, and the smallest compute unit that can be defined, deployed, and managed

services serves as an internal load balancer. It identifies a set of replicated pods in order to proxy the connections it receives to them.

A build is the process of transforming input parameters or source code into a runnable image.

Available build strategies: Docker build / Source-to-Image (S2I) / Custom build

An image stream and its associated tags provide an abstraction for referencing container images from within OpenShift Container Platform