Introduction

Now we know how to work with containers and images. In the last chapter, we also saw how to link containers and share data between the host and other containers. We also saw how containers from one host can communicate with containers from other hosts.

Now, let's look at different use cases of Docker. Let's list a few of them here:

  • Quick prototyping of ideas: This is one of my favorite use cases. Once we have an idea, it is very easy to prototype it with Docker. All we have to do is set up containers to provide all the backend services we need and connect them together. For example, to set up a LAMP application, get the web and DB server and link them, as we saw in the previous chapter.
  • Collaboration and distribution: Git is one of the best examples of collaborating and distributing code. Similarly, Docker provides features such as Dockerfile, registries, and import/export to share and collaborate with others. We have covered all this in earlier chapters.
  • Continuous Integration (CI): The following definition on the Martin Fowler website (http://www.martinfowler.com/articles/continuousIntegration.html) covers it all:
Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. Using recipes from other chapters, we can build an environment for CI using Docker. You can create your own CI environment or get services from companies such as Shippable and TravisCI. We'll see how Shippable and TravisCI can be used for CI work later in this chapter. I thought it would be helpful if I talk about both of them here:
  • Continuous Delivery (CD): The next step after CI is Continuous Delivery, through which we can deploy our code rapidly and reliably to our customer, the cloud, and other environments without any manual work. In this chapter, we'll see how we can automatically deploy an app on Heroku through Shippable CI.
  • Platform-as-a-Service (PaaS): Docker can be used to build your own PaaS. It can be deployed using tools/platforms such as OpenShift, CoreOS, Atomic, and so on. Later in this chapter, we'll see how to set up PaaS using OpenShift Origin (https://www.okd.io).
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.128.226