5. Managing Containers

A container is a standard unit of software that packages up everything needed to run an application: code, runtime, system tools, system libraries and settings. This allow applications to run reliably when moved from one computing environment to another.

Container engines, such as Docker, operate at the Operating System level, so they can be run inside a VM.

5.1. Running docker containers in the Cloud

For information about Docker and how to install it, please look at the Docker Documentation.

We report here only about a couple of possible issues that need to be properly addressed.

The first one concerns networking. Docker by default sets the default MTU to 1500, but the default MTU for Cloud virtual machines is reduced by the overhead added by some networking components. Thus you need to reduce the Docker MTU to say 1420.

Here are the detailed steps on how to change the MTU for containers in docker.

The second issue concerns the file system: there could be problems running docker on old CentOS 7 releases where xfs is used as file system, as reported here. Newest CentOS 7 releases are not affected by this issue.

If, for some reasons, you can’t use a newer version of CentOS 7 not affected by this problem, the instructions reported here might help.

5.2. Orchestrating containers

If you need to orchestrate multiple containers, we suggest to use Kubernetes (K8S), which is the most popular container orchestrator. Chapter Creating Kubernetes Clusters on the Cloud explains how to deploy a Kubernetes cluster on the Cloud.