Docker is a software development platform to build, test, and deploy applications. Your applications are packed into standardised units called containers that have everything the software needs to run including libraries, system tools, code, and runtime. With Docker your applications can be run on any environment and OS. Docker containers can run on your desktop, on physical or virtual machines in a data centre, on cloud providers, or in a mixture of environment.

Containerisation VS virtualisation

Docker container technology is similar to Virtual Machines (VMs) in that both provide isolated environments for running applications. However, there are fundamental differences between them. VMs rely on virtualisation technology where VM simulates an entire machine including the hardware (CPU, RAM, disk) and software (e.g. the full OS and the OS kernel). Whereas a container only contains an application with the dependencies and runtime environment necessary for it to run.

Docker on the cloud

With Docker, you can easily run your applications on EC2 instances or other computing clouds from services providers other than AWS. Containerised applications can be deployed across EC2 instances, one EC2 instance can run multiple applications.

Docker image and repository

Docker images are lightweight, standalone, and executable packages that contain everything needed to run a software, including the code, runtime, libraries, frameworks, and system tools. When a Docker image is initiated, it becomes a running container, encapsulates the entire runtime environment for an application, and the environment within that container is isolated from the host system and other containers.

A Docker repository is a centralised location where Docker images are stored, managed, and shared, allowing users to pull and push images from and to the repository. There is a public Docker repository called Docker Hub where you can find base images for many technologies and OS such as Ubuntu, MySQL, NodeJS, Java.


Back to parent node: Cloud Computing

containerisationDockerCloud_computingvirtualisationVMDockerHubEC2

Reference - Docker overview Docker Docs