Containerization is a way of sharing
parts of a single operating system among multiple isolated applications, as
opposed to virtualization which will support multiple apps with their own OS on
top of a single hypervisor. This
means that where it can take minutes to spin up a virtual machine, it can take
seconds to start a container because you aren't having to fire up the OS as
well. This is beneficial for massive distributed applications with lots of
discrete parts that need to be summoned, run, and then killed in short order.
The interest in containers led to the formation of the OpenContainer Initiative (OCI) to define the standards of container runtime and image formats. The industry is also witnessing various implementations of containers, such as LXD by Canonical, rkt by CoreOS, Windows Containers by Microsoft, CRI-O by KubernetesIncubator project, and vSphereIntegrated Containers by VMware.
Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. Docker provides the ability to package and run an application in a loosely isolated environment called a container. The isolation and security allow you to run many containers simultaneously on a given host. A Docker 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.
Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications. It’s a container management platform designed to run enterprise-class, cloud-enabled and web-scalable IT workloads. It’s a Container Orchestration tool used mainly for provisioning containerized applications. Containers are microservices packaged with their dependencies and configurations. Kubernetes alternatives are Docker Swarm, Apache Mesos, OpenShift.
Go is the programming language of the Cloud. A large part of tools for cloud (Docker, Kubernetes, Istio) written in Go language.
ref:
Docker official website- https://www.docker.com/
Docker Documentation - https://docs.docker.com/
Docker Overview -
1. https://docs.docker.com/engine/docker-overview/
2. https://www.docker.com/resources/what-container
3. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_atomic_host/7/html/overview_of_containers_in_red_hat_systems/introduction_to_linux_containers
4. https://ericchiang.github.io/post/containers-from-scratch/
Kubernetes official website - https://kubernetes.io/
What is Kubernetes - https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
Kubernetes basics - https://kubernetes.io/docs/tutorials/kubernetes-basics/
Kubernetes concepts - https://kubernetes.io/docs/concepts/
Kubernetes overview -
The interest in containers led to the formation of the OpenContainer Initiative (OCI) to define the standards of container runtime and image formats. The industry is also witnessing various implementations of containers, such as LXD by Canonical, rkt by CoreOS, Windows Containers by Microsoft, CRI-O by KubernetesIncubator project, and vSphereIntegrated Containers by VMware.
Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. Docker provides the ability to package and run an application in a loosely isolated environment called a container. The isolation and security allow you to run many containers simultaneously on a given host. A Docker 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.
Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications. It’s a container management platform designed to run enterprise-class, cloud-enabled and web-scalable IT workloads. It’s a Container Orchestration tool used mainly for provisioning containerized applications. Containers are microservices packaged with their dependencies and configurations. Kubernetes alternatives are Docker Swarm, Apache Mesos, OpenShift.
Docker vs Kubernetes:
“Kubernetes vs Docker” is like comparing apples to oranges. One isn’t an alternative to the other, they are complementary to each other. Quite the contrary; Kubernetes can run without Docker and Docker can function without Kubernetes.
“Kubernetes vs Docker” is like comparing apples to oranges. One isn’t an alternative to the other, they are complementary to each other. Quite the contrary; Kubernetes can run without Docker and Docker can function without Kubernetes.
Docker is a standalone software that can be installed on
any computer to run containerized applications. Containerization is an approach
of running applications on an OS such that the application is isolated from the
rest of the system. You create an illusion for your application that it is
getting its very own OS instance(but shared same kernel as the host), although
there may be other containers running on same system. Docker is what enables us
to run, create and manage containers on a single operating system.
If you have Docker installed on a bunch of hosts (different
operating systems), you can leverage Kubernetes. These nodes, or Docker hosts,
can be bare-metal servers or virtual machines. Kubernetes can then allow you to
automate container provisioning, networking, load-balancing, security and
scaling across all these nodes from a single command line or dashboard. A
collection of nodes that is managed by a single Kubernetes instance is referred
to as a Kubernetes cluster.
Go is the programming language of the Cloud. A large part of tools for cloud (Docker, Kubernetes, Istio) written in Go language.
ref:
Docker official website- https://www.docker.com/
Docker Documentation - https://docs.docker.com/
Docker Overview -
1. https://docs.docker.com/engine/docker-overview/
2. https://www.docker.com/resources/what-container
3. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_atomic_host/7/html/overview_of_containers_in_red_hat_systems/introduction_to_linux_containers
4. https://ericchiang.github.io/post/containers-from-scratch/
Kubernetes official website - https://kubernetes.io/
What is Kubernetes - https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
Kubernetes basics - https://kubernetes.io/docs/tutorials/kubernetes-basics/
Kubernetes concepts - https://kubernetes.io/docs/concepts/
Kubernetes overview -
- https://thenewstack.io/kubernetes-an-overview/
- https://azure.microsoft.com/en-us/topic/what-is-kubernetes/?&OCID=AID2000586_SEM_uQFwC39m&lnkd=Google_Kubernetes_Nonbrand&MarinID=suQFwC39m_372584111946_%2Bkubernetes_b_c__75821059109_kwd-88228236663_
- https://justanotherdevblog.com/2017/02/22/kubernetes-an-overview-bf47b0af1865/
Kubernetes vs. Docker: A Primer - https://containerjournal.com/topics/container-ecosystems/kubernetes-vs-docker-a-primer/
Go, the Programming Language of the Cloud - https://thenewstack.io/go-the-programming-language-of-the-cloud/