Please enable JavaScript.
Coggle requires JavaScript to display documents.
Container Networking Basic - Coggle Diagram
Container Networking Basic
Introduction to Containers
Applications
Many ways to serve applications nowadays:
In the Cloud
On-Prem
with Containers
Challenges
Different versions of libraries
To know how to complete deployment
having old version of the application itself
Network issue
with single TCP/IP stack creating port conflicts on the host machine
Performance issue
hosting multiple applications on the same machine to increase the machine's utilization
Hypervisors are a way to increase on host machine's efficiency and remove the one operating system/networking stack issues
Hypervisor
Advantage aspect
Allow to share the underlying hardware with multiple guest operating system
Give each application development team a separate networking stack. Removing the port conflict issue on shared systems.
Remaining issue for Application Developer
Library versions
Deployment
other issues
Containers
Benefit of containerization of application
Each container is independent
App dev can use whatever they need to run their application without relying on underlying libraries or host operating systems
Each container has their own network stack
The container allows App dev to package and deploy APP while maintaining efficiencies for the host machines
List of Terms:
Container: A running container image
Image: A container image is the file that is pulled down from a registry server and used locally as a mount point when starting a container
Container engine: A container engine accepts user requests via command - line options to pull images and run a container
Container runtime: is the low-level piece of software in the container engine that deal
Base image: A starting point for container images; to reduce build image sizes and complexity, users can start with a base image and make incremental changes on top of it.
Image Layer: Repositories are often referred to as images or container images, but actually they are made up of one or more layers. Image layers in a repository are connected in a parent -child relationship. Each image layer represents changes between itself and the parent layer.
Image format: Container engines have their own container image format, such as LXD, RKT, and Docker
Registry: A registry stores container images and allow for users to upload, download, and update container images
Repository: Repositories can be equivalent to a container image. The important distinction is that repositories are made up of layers and metadata about the image; this is the manifest.
Tag: A tag is a user-defined name for different versions of a container image
Container host: is the system that runs the container with a container engine
Container Orchestration: This is WHAT KUBERNETES DOES! It dynamic schedules container workloads for a cluster of container hosts
Low-Level Container runtime functionality
Creating Containers
Running Container
Low-Leval Conteiner runtimes
LXC: C API for creating Linux container
runC : CLI for OCI-Compliant containers
High-Level container runtimes functionality
Formatting container images
Building container images
Managing container images
Managing instances of containers
Sharing container images
High-level container runtimes
Containerd: Container runtime split off from Docker, agraduated CNCF project
CRI-O: Container runtime interface using the Open Container Initiative(OCI) specification, an incubating CNCF project
Docker: Open source container platform
lmctfy: Google containerization platform
rkt: CoreOS container specification
OCI
Def: OCI Promote common, minimal, open standards, and specifications for
container Technology
Benefit: The idea for creating a formal specification for container image formats and runtimes allow a container to be
portable across all major operating systems
and platforms to ensure no undue technical barries
Three Values
Composable:
Clean interface
not be bound to specific project, clients, or frameworks
works across platforms
Decentralized
Format and runtime should be well specified and developed by the community, not one organization
independent implementations of tools to run the same continer
Minimalist
be minimal and stable
Enable innovation and experimentation