In the article Introduction to Docker I talked about the general purpose of docker – providing a platform to run software in a controlled environment. In this article I will show how to create Docker containers from images, running Docker containers and providing the required arguments.
To create a Docker container, you first need to decide which Image to take as a base. This will usually be a specific software solution (e.g. a webserver or a database server), or it can even be an empty base linux system (e.g. Debian Jessie).
In the past we often had some software (e.g. web application inside an application server) that needed to be deployed on multiple servers, different stages (development, staging, production) and even on some machines hosted by a customer, but managed by ourselves.
To help with setting up the server and configuring the software, the container management tool Docker made a lot of this tasks easier by providing a defined and stable platform for application deployments.
The purpose of Docker
So, what are the aims of Docker and how can it help your deployment?
First of all, when you try to install and deploy your software on a linux server, there are a lot of uncertainties and variable conditions, that can influence your installation:
- Used operation system distribution (CentOS, Ubuntu, Debian, or even Gentoo?)
- Installed libraries and version of the libraries and tools (is java environment available? in which version by which provider in which path?)
- System settings, like character set and time zone
- Blocked ports by other services (is port 80 already taken? how to handle another server software, that also needs this port?)
- Users, Groups, Permissions
- Environment variables