You have heard about it for sure, it’s one of the hottest technologies of the moment and it’s gaining momentum quickly: the numbers illustrated at DockerConf 2017 are about 14 million Docker hosts, 900 thousands apps, 3300 project contributors, 170 thousands community members and 12 billion images downloaded.
In this series of articles we’d like to introduce the basic concepts in Docker, so to have solid basis before exploring the ample related ecosystem.

The Docker project was born as an internal dotCloud project, a PaaS company, and based on the LXC container runtime. It was introduced to the world in 2013 with an historic demo at PyCon, then released as an open-source project. The following year the support to LXC ceased as its development was slow and not at pace with Docker; Docker started to develop libcontainer (then runc), completely written in Go, with better performances and an improved security level and degree of isolation (between containers). Then it has been a crescendo of sponsorships, investments and general interest that elevated Docker to a de-facto standard.

It’s part of the Open Container Project Foundation, a foundation of the Linux Foundation that regulates the open standards of the container world and includes members like AT&T, AWS, DELL EMC, Cisco, IBM Intel and the likes.

Docker is based on a client-server architecture; the client communicates with the dockerd daemon which generates, runs and distributes containers. They can run on the same host or on different systems, in this case the client communicates with the daemon by means of REST APIs, Unix socket or network interface. A registry contains images; Docker Hub is a public Cloud registry, Docker Registry is a private, on-premises registry.

 

docker architecture

Docker Engine is the client-server application that manages these components.

docker engine

Container vs VM

Docker is about container, a virtualization concept whose roots lay back in time (the first implementation is chroot in Unix, 1983), but it’s only recently that it gained a solid development and momentum, and a number of implementations of the technology guaranteed its success.
Containers (CT) and virtual machines (VM) are conceptually different, yet the user experience is almost the same in several circumstances.
A VM recreates a whole operating system, including kernel emulation and user-space. The use of computational resources is intensive and the running state is the result of a hard-to-replicate combination of dependencies, system states and runtimes.

docker vm

On the other hand, a CT emulates just the user-space but not the kernel, for which is used the one of the underlying hypervisor. Consequently, and strictly speaking, containers can be only Linux and not Windows, macOS or *BSD (which has as a similar virtualization paradigm) like in a virtual machine. Each CT just has code, dependencies and settings needed to run the application they are deployed for, the kernel is shared with the underlying operating system.

docker container rm

The advantages of this paradigm are essentially two. The first one is about the computational needed for virtualizing: a CT needs enough to recreate the user-space, thus resulting in a lesser overhead that kernel-complete emulation. Therefore the size of a CT is contained too, as kernel, apps and libraries that are provided by a complete operating system (as in a VM) and are not actually used, are not present. The second advantage is about compatibility and portability of container, which is exemplified by the “Build, Ship and Run Any App, Anywhere” motto.

In facts, the images containers are built from need just Docker to be used, and as Docker is available for several operating systems and architecture, it follows that containers are an host-agnostic technology. So code can be written on Windows and then run on Linux thanks to the portability that is guaranteed by Docker; and as the actual state of the container can be replicated quite easily, compatibility issues disappear too.

All in all, containers are not just “virtual machines that boot up quicker”, they open the doors to the micro-services paradigm, which is a deployment concept where monolith services are substituted by several atomic services, micro-services indeed.
Docker encompasses this idea providing, let’s say, an instance for the web server, an instance for the database and an instance for the scripting language instead of a single, big LAMP stack virtual machine.
The advantages brought by micro-services are plenty and require a complete, separate article; however this paradigm is not the winning one in all cases: each one must be carefully pondered and evaluated.

Installation requirements and supported systems

Docker is available in two editions: the Community Edition (CE) and the Enterprise Edition (EE). The former is free, the latter is paid and has two update channels (Stable, with quarterly releases, and Edge, with monthly releases). The EE is thought for business-critical contexts. It includes advanced capabilities such as advanced management of containers and images, certified ecosystem and images safety scans.

Supported operating systems include macOS, Windows 10 and Windows Server 2016 and Linux (several distros including CentOS, RHEL, Suse Ubuntu and Debian); supported architectures include x86_64, ARM, ARM64 and IBM Z. The processor must have a virtualization technology enabled.

Check the official documentation for any OS and platform specific installation instruction. Note that on Windows 7, 8 and 8.1 Docker has to be installed with Docker Toolbox and not with the typical installation procedure.

Docker Cloud allows the installation on partner Cloud environments like Amazon Web Services, Microsoft Azure and DigitalOcean.

Docker is used via command line preferably or with a GUI like Portainer or Rancher. Orchestration tools like Docker Swarm and Kubernetes will be treated in another article.

 

banner eng

fb icon evo twitter icon evo

Word of the Day

The term Edge Computing refers, when used in the cloud-based infrastructure sphere, the set of devices and technologies that allows...

>

The acronym SoC (System on Chip) describes particular integrated circuit that contain a whole system inside a single physical chip:...

>

The acronym PtP (Point-to-Point) indicates point-to-point radio links realized with wireless technologies. Differently, PtMP links connects a single source to...

>

Hold Down Timer is a technique used by network routers. When a node receives notification that another router is offline...

>

In the field of Information Technology, the term piggybacking refers to situations where an unauthorized third party gains access to...

>
Read also the others...

Download of the Day

Netcat

Netcat is a command line tool that can be used in both Linux and Windows environments, capable of...

>

Fiddler

Fiddler is a proxy server that can run locally to allow application debugging and control of data in...

>

Adapter Watch

Adapter Watch is a tool that shows a complete and detailed report about network cards. Download it here.

>

DNS DataView

DNS DataView is a graphical-interface software to perform DNS lookup queries from your PC using system-defined DNS, or...

>

SolarWinds Traceroute NG

SolarWinds Traceroute NG is a command line tool to perform advanced traceroute in Windows environment, compared to the...

>
All Download...

Issues Archive

  •  GURU advisor: issue 21 - May 2019

    GURU advisor: issue 21 - May 2019

  • GURU advisor: issue 20 - December 2018

    GURU advisor: issue 20 - December 2018

  • GURU advisor: issue 19 - July 2018

    GURU advisor: issue 19 - July 2018

  • GURU advisor: issue 18 - April 2018

    GURU advisor: issue 18 - April 2018

  • GURU advisor: issue 17 - January 2018

    GURU advisor: issue 17 - January 2018

  • GURU advisor: issue 16 - october 2017

    GURU advisor: issue 16 - october 2017

  • GURU advisor: issue 15 - July 2017

    GURU advisor: issue 15 - July 2017

  • GURU advisor: issue 14 - May 2017

    GURU advisor: issue 14 - May 2017

  • 1
  • 2
  • 3
  • BYOD: your devices for your firm

    The quick evolution of informatics and technologies, together with the crisis that mined financial mines, has brought to a tendency inversion: users that prefer to work with their own devices as they’re often more advanced and modern than those the companies would provide. Read More
  • A switch for datacenters: Quanta LB4M

    You don’t always have to invest thousands of euros to build an enterprise-level networking: here’s our test of the Quanta LB4M switch Read More
  • Mobile World Congress in Barcelona

    GURU advisor will be at the Mobile World Congress in Barcelona from February 22nd to 25th 2016!

    MWC is one of the biggest conventions about the worldwide mobile market, we'll be present for the whole event and we'll keep you posted with news and previews from the congress.

    Read More
  • 1