Docker

Docker is the container platform we use to package an application with everything it needs to run. Your project then behaves the same on our developers' computers, in testing and on the live server, and it's easier to hand over or move.

What Is Docker?

Docker is a platform for building and running software in containers, made by Docker, Inc. A container is a self-contained package that holds an application together with everything it needs to run: the right language version, libraries and settings. Containers share the core of the server's operating system, the kernel, instead of each running a complete operating system as a virtual machine does, so they start in seconds and use far fewer resources.

A short text file called a Dockerfile describes how the environment is built. Docker turns it into an image, a read-only template that can be stored and shared through registries such as Docker Hub, where official images for Node.js, PHP, PostgreSQL and MySQL are published. A running copy of an image is a container. Docker Compose starts several containers together, such as an application and its database, from a single file, and volumes keep data safe when a container is replaced.

Docker was released as open-source software in 2013 by the company then called dotCloud, which renamed itself Docker, Inc. the same year. Docker Engine, which runs containers on servers, is still open source and free. Docker Desktop, the app developers use on their own computers, is free for individuals, education and small businesses, while larger companies need a paid subscription. Containers have since become a common way to build and run web applications.

Where We Use Docker

Docker earns its place on projects with a back-end (the part that runs on the server), a database or several services working together. This is where we use it most:

  • Same Setup on Every Machine

    The project's environment is written down in files, so every developer starts it with one command and works with the same versions of Node.js, PHP or the database. The classic “it works on my computer” problem disappears.

  • Back-Ends and Databases

    For custom back-ends built with Laravel or Node.js, Docker Compose runs the application, its PostgreSQL or MySQL database and supporting services side by side, each in its own container, with data kept safely in volumes.

  • Testing Before Launch

    The test environment is built from the same image that goes live, so what you approve in testing is exactly what your visitors get. We try updates there first, never directly on the live site.

  • Handover and Server Moves

    Because the whole environment travels with the code, handing a project to your team or moving it to another server or hosting company takes much less work. We include clear instructions for running it.

Why Docker?

  • Predictable Results

    The same image runs in development, testing and production. Version differences between machines, a common source of bugs that only appear after launch, are taken out of the picture.

  • Isolated Projects

    Each application runs in its own container with its own versions, so updating one project doesn't affect another on the same server. The isolation also limits what each service can reach.

  • No Lock-In

    Docker Engine is open source, and your project can move to another server or hosting company with little change. You aren't tied to a single provider, or to us.

How We Work on Your Project

At the start of the project we describe the environment in a Dockerfile and a Compose file: language versions, the database and any extra services. Every developer and the test environment use these same files, and every change to them is recorded in Git alongside the code.

Before handover or launch we rebuild the image from scratch to make sure it builds cleanly, fix exact software versions, keep passwords and API keys out of the image and set up database backups. We also write down how to start, update and move the project, so your team or any future developer can take it from there.

Web Design and Development

Frequently Asked Questions

Help Center
Does my website need Docker?

Not always. A simple site without a back-end may not need it. We use Docker when there's an application, a database or several services to run, and we tell you clearly when it adds value.

Does Docker cost anything?

Docker Engine, which runs the containers on your server, is open source and free. Docker Desktop, the app developers use on their own computers, has paid plans for larger companies, but it isn't needed on the server.

Can I move my project to another server later?

Yes, and that's one of the main reasons we use Docker. The environment is described in files that travel with the code, so the project can be started on a new server with little change, and we document the steps.

Does Docker slow the site down?

On a Linux server, containers run almost as fast as software installed directly, because they share the server's kernel instead of running a separate operating system. Speed depends far more on the code, the database and caching, which we measure before launch.

The Right Tools, the Right Team

Let's work out which tools fit your business and come back to you with a roadmap for your project.