Docker as a Service

In the previous posts we learned about Docker, containers, and working with containers, In this post we will learn about Containers as a Service (CaaS) in general and how Docker realizes CaaS.

1. Why Docker as a Service?

Take a typical developer work-flow involving Docker. It will be typically as below. This is based on the reference workflow provided in the Docker docs.

A typical Docker workflow
A typical Docker workflow

As you can see from the above workflow, there is quite some IT activity to be performed if Docker is used for app development at scale in an organization.

  • Infrastructure to host Docker containers and all the other related tools provided by Docker.
  • Provide compute, storage and networking for the containers as needed.
  • Application lifecycle support and tooling.
  • Monitor utilization of compute, storage and networking and stop/start containers as needed.
  • Address scaling needs of the containers. Handle orchestration of containers at enterprise scale.

These issues are significant at enterprise scale. The existing solution has been for administrators to use infrastructure-as-a-service (IaaS) like Amazon’s AWS EC2 and handle the above issues manually or through home-built tools. However, Docker now provides the Docker container-as-a-service to address the above issues.

2. Container as a Service (CaaS)

So, what is CaaS?  It is a cloud service model that enables users to order and use containerization infrastructure from a cloud provider using a pay-as-you-go model.  Docker CaaS is an example.  Amazon EC2 Container Service (ECS) by AWS is another example.

As a cloud service model, CaaS probably sits as a subset of IaaS in that it enables a container-based infrastructure for it’s users.  A CaaS offering usually seeks to provide the following features to it’s users.

  • Manage containers through an API or web interface.
  • Monitor compute, storage and network resources used by the containers.
  • Provide cluster management and orchestration capabilities for containers.
  • Provide security and governance controls.
  • Optionally, be cloud agnostic so that the CaaS can be shifted across cloud providers or from in-premises to cloud.

3. Docker CaaS

Docker’s CaaS offering called Docker Datacenter packages Docker’s tools to provide developers and IT with a consistent container infrastructure.  This is a commercial offering aimed at enterprises and provides the following features.

  • Brings well known open source Docker tools under a CaaS umbrella – Docker Engine, Docker Compose, Docker registry, Docker Swarm.
  • Adds commercial offerings – Universal Control Pane and Trusted Registry.
  • Ability to deploy the CaaS in-premises or cloud.
  • A private trusted docker registry for managing images.
  • Cluster management and orchestration capabilities through Swarm and Universal Control Pane.
  • Tools for the application development lifecycle, continuous integration and deployment.
  • Provides security in the application lifecycle all the way from from dev to production stages.

Refer to the Docker Datacenter pages by Docker for more information about providing Docker as a service.

4. Summary

In this short post, we understood the need for a “Docker-as-a-service” solution to handle containerized application development needs at scale for an organizations.  We briefly understood the features provided by a CaaS service in general.  Then we briefly discussed Docker’s CaaS offering called the Docker Datacenter that offers Dockers tools as a service to developers and IT administrators.

Want to know how to develop your skillset to become a Java Rockstar?

Join our newsletter to start rocking!

To get you started we give you our best selling eBooks for FREE!


1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design


and many more ....


Receive Java & Developer job alerts in your Area

I have read and agree to the terms & conditions


Hariharan Narayanan

Hari graduated from the School of Computer and Information Sciences in the University of Hyderabad. Over his career he has been involved in many complex projects in mobile applications, enterprise applications, distributed applications, micro-services, and other platforms and frameworks. He works as a consultant and is mainly involved with projects based on Java, C++ and Big Data technologies.
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments
Back to top button