Changing the Way of Continuous Delivery with Docker (Part 1)


This post is the first part of the series “Changing the Way of Continuous Delivery with Docker” and discusses the background, challenges, and processes involving Docker. Docker is a service for reformed continuous delivery. In the second part of the series, we will explore the method of using Docker along with its delivery processes.


The internet industry has been constantly changing market demands and products, forcing organizations to adapt by making constant deliveries and updates to their production environment. This new approach to development is known as Continuous Integration (CI) and Continuous Delivery (CD), which combines and converts development, production and delivery processes into a cyclical process.

Traditional CD Processes: Overview and Challenges

Traditional development solutions include processes, Continuous Integration (CI), and Continuous Delivery (CD). These practices combine and convert development, production, and delivery processes into a cyclical process.

  • Continuous testing: Just like a physical examination (for your system), it helps with the rapid discovery and elimination of faults in your system before the final launch, preventing a combination of untested features, missing features, or defective code segments. In general, this process should be continuous.
  • Feedback loops: In the flowchart of continuous integration pipes, each step consists of a feedback loop. This allows for rapid feedback, simplifying problem identification and rectification.

Building a CD process- Environment Requirements

Generally, a company or a project requires a multiple environments. Typically, the production environment of an enterprise is placed in a public cloud, while the development process is in an offline environment. The public cloud environment may be inconsistent with the offline development environment, resulting in problems during the final product launch.

CD Processes- Problems Encountered

Problems may occur even if a complete continuous integration system environment is built systematically. Developers may even rely on different language environments or packages, causing conflicts in compiling environments and difficulties in maintenance.

Origin of Problems

A majority of problems arise because developers only deliver code and related dependencies, while operations, in reality, also require an operating environment, environmental description, dependencies, databases, and cache.

Docker: Transforming the Way of Software Delivery

Competency of Docker

Before Docker came into being, there were many specification constraints to creating containers. Docker is not only a software but also a new approach to implementing containers.

  • Hierarchical file system: Docker images provide a solution to package management, in which we describe each operation as a layer of version management.
  • Separation of OS: Docker shields the differences of the operating system upon running.

Docker is a Container Technology

In virtualization technology, hardware and software are virtualized into virtual machines. Each virtual machine is a complete operating system that is well isolated but may require several minutes to start.

Three Steps to Software Delivery with Docker

  1. Build: describes the operating system foundation, the environment, the port to start, and scripts to run. The system saves the description file as a Docker image located within the local storage.
  2. Ship: pushes the image to the Docker Registry at the far end.
  3. Run: pulls the image from the public registry upon running. The container is an environmental description and at the same time an entirety, which will render the same result when running in whatever environment.

Case Study: BBC News

BBC News is a global news website company with over 500 developers distributed around the world. It has more than ten CI environments, as it uses different languages in different areas of the world. BBC News had to figure out how to unify the coding processes and manage the CI environments uniformly. The existing jobs took up to 60 minutes to schedule and run, and they were run sequentially. With Docker, the jobs are now run in parallel, significantly speeding up the process. Furthermore, by using containers, the developers do not have to worry about the CI environments. Visit Docker to learn more about BBC’s success story.


This post introduced Docker and its role in Continuous Integration and Continuous Delivery. Continuous Delivery with Docker mainly focuses on reducing application risks while delivering value faster through reliable software production in shorter iterations.

Follow me to keep abreast with the latest technology news, industry insights, and developer trends.