Docker
Docker is an open-source platform for containerisation — a technology that packages an application together with all its dependencies (libraries, configuration, runtime) into an isolated package called a container. The container includes everything needed to run the application and starts identically on any system that has Docker — on a developer's laptop, a test server, or in production. This eliminates the classic “it works on my machine” problem.
- /01
Containers vs virtual machines
Containers are often compared with virtual machines (VMs), but they are significantly lighter. A VM virtualises an entire operating system — each VM needs its own OS, which takes up gigabytes of memory and minutes to start. A container shares the host OS kernel and contains only the application and its dependencies. It starts in seconds and takes up megabytes. On a single server you can run dozens of containers instead of just a few VMs.
- /02
Dockerfile and Docker Compose
A Dockerfile is a text file with instructions for building a container — what base image to use (e.g. Node.js 20), which files to copy, which commands to run (npm install), and which port to expose. Docker Compose lets you define and run multi-container applications — for example a web app, a database, and a cache server with a single docker compose up command. Everything is described in code, versioned in Git, and repeatable.
- /03
Docker in web development practice
Docker is useful for development environments (every team member has an identical setup), CI/CD pipelines (tests run inside a container), microservices architectures (each service in its own container), and production deployment. For simpler websites hosted on Vercel you don't directly need Docker — Vercel handles everything for you. Docker comes into its own with more complex applications that have a database, background workers, or specific system dependencies.
- /04
Kubernetes and orchestration
When you have dozens of containers, you need a tool to manage them — orchestration. Kubernetes (K8s) is the most widespread orchestrator, handling automatic scaling, load balancing, rolling updates, and self-healing (restarting crashed containers). For smaller projects there are simpler alternatives like Docker Swarm or managed services (AWS ECS, Google Cloud Run). At Appitect we choose a solution proportional to the size of the project — not every website needs Kubernetes.
- /05
Practical example
A client needs a web application with a Next.js frontend, a PostgreSQL database, and a Redis cache. With Docker Compose we create a file defining three services: web (Node.js with Next.js), db (PostgreSQL with an init script), and cache (Redis). A new developer clones the repository, runs docker compose up, and within a minute has the entire application running — without installing PostgreSQL, Redis, or the right version of Node.js on their machine.
Need containerisation for your project? We'll help you with Docker and application deployment.
We'll be glad to help. The consultation is free and with no obligation.
Get in touchNeed help with your project?
Don't hesitate to reach out — we'll happily advise you on anything from website development to online marketing. The consultation is free.