Skip to main content

Technical Decisions

Container

A container bundles an application with everything it needs to run, so it behaves identically on any machine. It solves a real problem and adds a skill requirement.

Definition

A container packages an application together with everything it needs to run: the runtime, the libraries, the configuration. The result behaves the same wherever it is started.

What It Actually Means

Docker is the name most people encounter. The problem it addresses is the oldest complaint in software: it worked on the developer’s machine and not on the server, because the two had different versions of something nobody thought to check.

What It Genuinely Solves

Environments stop drifting. Development, staging and production run the same image rather than three similar setups maintained separately. A whole category of confusing bugs disappears.

Setup becomes reproducible. A new developer starts working in minutes rather than spending a day installing the right versions of things. On a project with any turnover this is worth a great deal.

Deployment gets predictable. The thing tested is the thing shipped, rather than a set of instructions performed again on a different machine.

The recipe is written down. The configuration is a file in version control rather than knowledge in somebody’s head about how the server was set up. That alone removes a common single point of failure.

What It Costs

A skill requirement. Containers introduce concepts that have to be understood: images, volumes, networking between containers. A team that half-understands them produces something harder to debug than what it replaced.

More moving parts. For a simple site on a single server, containers can add complexity without solving a problem you had.

Orchestration is a further step. Running containers across multiple machines usually means Kubernetes, which is powerful and a substantial undertaking. It is emphatically not required to use containers, and it is frequently assumed to be.

Is It Right For You

Worth it when several people work on the same system, when environment differences have caused real problems, when the application has several parts that must run together, or when the setup is complicated enough that documenting it properly matters.

Probably not worth it for a straightforward site on managed hosting, maintained by one person, where nothing has ever gone wrong for environmental reasons.

The honest test is whether you have felt the problem. Containers solve a specific pain, and businesses that have not experienced it are buying complexity in advance.

What To Ask

  • What problem does this solve for us? There should be a concrete answer, ideally one you recognise.
  • Do we need orchestration, or just containers? Usually just containers, and conflating them is expensive.
  • Who understands this? If one person does, that is a dependency worth naming.
  • How does data persist? Containers are disposable by design; anything that must survive needs deliberate handling, and getting this wrong loses data.
  • Where do the images live, and are they scanned? Base images carry dependencies and their vulnerabilities.

The Realistic Position

Containers have become the ordinary way to package server software, and for anything of moderate complexity they are a sensible default rather than an advanced choice.

Where it goes wrong is adopting the whole ecosystem at once, on a system that did not need it, because the surrounding tooling is presented as a package. Containers on a single server, deployed simply, deliver most of the benefit at a fraction of the cost.

More terms are in the glossary.

Portrait of Alexander De Sousa, founder of Digital Royalty
Founder-led
“I’ve put everything I know into how this company works — the standards, the method, the care on every project. It runs through the whole team, and I hold us all to it.”

Alexander De Sousa · Founder LinkedIn

Featured on BBC Radio Solent

Get started

Tell us what you need

A few quick questions, then a straight answer from a real person — usually within a few hours.

Tell us what you're working on

Whether it's a new site, a platform, or a process that shouldn't be manual any more — we'll tell you honestly if we can help.