Table of contents
What is Docker?
Docker is an open-source platform based on Linux containers for developing, shipping, and running applications inside containers. Containers are very fast and lightweight because they don’t need the extra load of a hypervisor in comparison to the virtual machines because they run directly within the host machine’s kernel.
Docker is a popular containerization platform that enables developers to package applications and their dependencies into lightweight, portable containers. It provides a consistent runtime environment, ensuring that applications run seamlessly across different systems and environments. Docker simplifies the process of creating, distributing, and running containerized applications.
Docker Limitations :
a) Dynamic IP: The problem with docker is it uses a dynamic IP address. When we restart the container the IP address will change because IP is not static in Docker.
b) Ephemeral data storage: Docker containers are designed to be stateless, meaning that any data or changes made inside a container are typically lost when the container is stopped or deleted.
c) Confined to Single Host: In Docker, we can multiple containers on different hosts. Inside a single host, we can connect multiple containers to each other via a bridge network but we can’t connect two containers that are running on different hosts.
d) Security: Containers are lightweight, but you pay for this with security. Since containers in most cases use a common operating system, there is a general risk that several containers will be compromised at once if a host system is attacked.
e) No GUI: Docker was initially created as a solution for deploying server applications that don't require a graphical user interface (GUI).
Docker Containers | Kubernetes |
Docker is the tool to deploy containers. | Kubernetes is a Container Orchestration tool. |
Docker runs on a single node. | Kubernetes is meant to run across a cluster |
In Docker Communication between two different nodes is not possible. | Using Kubernetes different nodes can communicate with each other. |
Docker Swarm is used to managing containers which comes with the enterprise edition and not preferred by most companies. | Kubernetes is an open-source platform also, this is widely used in industries. |
Docker automatic scaling and failover for your application running on the container not possible. | Kubernetes takes care of scaling and failover for your application running on the container. |