Docker is a platform for packaging applications and dependencies into containers. js, Python, Java), libraries, and configuration files. Everything needed to run the application. You build a Docker image, a template. You run containers from that image. Containers are lightweight.
Unlike virtual machines which virtualize an entire operating system, containers virtualize only the application environment. You can run hundreds of containers on a single machine where you'd only fit a handful of VMs. Containers are portable. Build a container on your laptop, push it to the cloud, it runs the same way. No more "works on my machine" problems. Containers are isolated.
One container's crash doesn't affect others. This makes containers perfect for microservices. Each service is a container. You can deploy, update, and scale containers independently. Kubernetes orchestrates containers at scale. Docker changed deployment completely. From manually installing software on servers to containerizing everything in portable images.
Docker is the standard deployment mechanism for modern applications.