- Published on
Docker, Container and Kubernetes
- Authors
- Name
- Jackson Chen
Docker hosting platform for containers
https://geekflare.com/docker-hosting-platforms/
Docker is a popular containerization tool in DevOps. It runs your application inside a container, uses minimum resources, can be deployed faster, and it can scale quickly.
Popular docker hosting platform
1. appfleet
2. Jelastic
3. A2 Hosting
4. StackPath
5. Google Cloud Run
6. Sloppy.io
7. Amazon Elastic Container Service (Amazon ECS)
8. Microsoft Azure
9. Kamatera
10. HostPresto
11. Vultr
Containers
https://docs.vmware.com/en/VMware-vSphere-Integrated-Containers/index.html
VMware vSphere Integrated Containers
Containers are ideal technology for supporting microservices. Applications that run on cloud-based environments are designed with failure in mind. They are built to be resilient, to tolerate network or database outages, and to degrade gracefully.
#Terms and concepts
Container An application packaged with dependencie
Container engine A runtime engine that manages the containers
Docker The most recognized runtime engine for container support
Container host A virtual machine or physical machine on which the containers and container engine run
Kubernetes Google-developed orchestration for container
Introduction to Container
https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction#
Red Hat OpenShift Container Plaform
https://docs.openshift.com/container-platform/4.8/welcome/index.html
VM and Containers
https://www.vmware.com/topics/glossary/content/vms-vs-containers
# Containers have the following characteristics:
1. A container can run on any container host with the same operating system kernel that is specified by that container.
2. A running container is accessed using its FQDN or its unique IP address.
3. Each container can access only its own resources in the shared environment.
Virtual Machines Containers
-------------------------------------------------------------------------------------------------
Encapsulation of an entire operating system Encapsulation of an application and dependent binaries or libraries
Scheduled by the hypervisor Scheduled by the container host OS
Run on the hypervisor Run on the container host OS
Starting VM operating system Starting a container starts the application process
Container Engines
A container engine is a control plane that is installed on each container host. The control plane manages the containers on that host.
Container engines perform several functions
1. Build container images from source code (for example, Dockerfile), Alternatively, load container images from a repository.
2. Create running containers based on a container image.
3. Commit a running container to an image.
4. Save an image and push it to a repository.
5. Stop and remove containers.
6. Suspend and restart containers.
7. Report container status.
Note: Docker is the most commonly used container engine
When a user requests that a container is run, the container engine gets the container image from an image registry, or locally and runs the container as a process.
Kubernetes
Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. It is container orchestration.
It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds upon 15 years of experience of running production workloads at Google, combined with best-of-breed ideas and practices from the community.
# Kubernetes performs the following functions:
1. Groups containers that make up an application into logical units for easy management and discovery
2. Automatically places containers based on their resource requirements
3. Restarts failed containers, replaces and reschedules containers when hosts fail, and stops containers that do not respond to user-defined health check
4. Progressively rolls out changes to the application, ensuring that it does not stop all the instances at the same time and enabling zero downtime
5. Allocates IP addresses, mounts the storage system, load balances
Kubernetes manages containers across multiple container hosts, similar to how vCenter Server manages all ESXi hosts in a cluster. Running Docker without Kubernetes is like running ESXi hosts without vCenter Server to manage them.
VMware and Containers Support
# With the VMware software-defined data center (SDDC)
1. The resources and availability zones map to vSphere clusters
2. security policy and load-balancing map to NSX
3. persistent volumes map to vSphere datastores
4. metrics map to Wavefront