Docker
Docker is an open-source platform that provides tools to build and run applications in containers, ensuring that it runs consistently and securely across different environments.
The Docker platform contains several components we at Kiwee actively use.
Docker Engine is the platform's core, responsible for building and running Docker containers.
Docker Desktop is a GUI-based application that includes Docker Engine and many useful add-ons like Compose, BuildX, Scout, Kubernetes, to name a few. Moreover, it enables installing third-party extensions thanks to Extensions Marketplace. Docker Desktop ensures that an application can be built and run consistently on all platforms that Docker Desktop supports—Linux, Windows, and macOS.
Compose is an add-on—already included in Docker Desktop—which declaratively defines (using YAML format) multi-container applications, including dependencies between individual containers and build arguments. It allows starting of all application containers and all its backing services with a single command.
Concluding, Docker is the development platform of choice for the majority of our projects. It speeds up project setup by eliminating the necessity of installing individual local backing services and libraries. Moreover, it helps ensure cross-environment consistency. Such consistency reduces bugs related to discrepancies between development, staging, and production environments. We have been successfully running Docker-based applications in production since 2017.
Revisions:
Docker is a platform for deploying, distributing and running applications in containers. A container allows to include an app itself with all dependencies pre-installed. Unlike VMs, Docker uses native OS libraries and kernel. Containers are isolated from each other, have own libraries and manage their own processes. It is a much faster solution than VMs.
Docker saves a lot of time on configuring development environment, thus lets developers stay focused on coding. Moreover, Docker makes it easier to work on several projects with different system requirements on a single computer.
Docker can be also used to build clusters with Docker Swarm or third party systems like Kubernetes.
We at Kiwee have managed to migrate all our web projects to run in containers, which increased our efficiency.