Image Source and Credits:

Docker recently introduced a new time-based versioning scheme for Docker Engine as well as announced a new Enterprise Edition (EE) version of Docker platform for business-critical deployments.

Docker EE would now be available in three tiers:

  • Basic: Docker platform for certified infrastructure, with support from Docker Inc. and certified Containers and Plugins from Docker Store.
  • Standard: Adds advanced image and container management, LDAP/AD user integration, and role-based access control (Docker Datacenter).
  • Advanced: Adds Docker Security Scanning and continuous vulnerability monitoring.

Docker Engine (available for free) will now be known as Community Edition (CE) version and will be mentioned along with…

Image Source & Credits:

In this blog, we’ll discuss new features added in Docker Compose v3. Docker compose added the feature of stack deployment with swarm.

To achieve this, we need to create a file named, docker-stack.yml and specify the deploy key, which would allow you to specify various properties of a swarm deployment in docker-stack.yml file.

For deploying this, you simply need to run the docker-stack deploy command with this docker-stack.yml file to pull the referenced images and launch the services in a swarm as configured in the .yml.

deploy key

The deploy key allows you to specify configuration related to the deployment and running…

Image Source & Credit:

In this blog, we’ll discuss the new features added in Docker v1.13.

System commands

Docker v1.13 introduces the system commands to help users check how much disk space Docker is using, display systemwide docker information and get real time events from the server.

To show used space by docker, you can execute:

docker system df

To show system wide information, you can use:

docker system info

A set of Management commands

Docker v1.13 introduces the management commands for container, image, plugin, secret, stack and system. Now, you can list the container or create the container with the help of:

docker container ls 
OR docker container list
docker container…

Image Source and Credits:

In Docker engine v1.13, we got the management commands for container, image, plugin, secret, stack and system.

Below, we’ll see how to work with each of the management commands and sub-commands.

docker container

To attach to a running container

docker container attach <container-id/name>

To create a image from a container’s changes

docker container commit <container-id/name> <new-image-name>

To copy files/folders from the host to a container or vice-versa.

docker container cp <file> <container-id/name>:/path/to/copydocker container cp <container-id/name>:/path/from/copy <to-copy-on-host>

To create a new container

docker container create --name <container-name> <image-id/name>

To inspect changes on a container’s filesystem

docker container diff <container-id/name>

To run a…

Image Source and Credits:

In this blog, we’ll discuss why docker should be leveraged for local application development and testing.

Docker is not just for deployment, it’s a great tool for development too.

Why use Docker for Development?

Here’s some of the benefits of leveraging docker for development purposes.

  • Consistent development environments for the entire team. All developers use the same OS, same system libraries, same language runtime, independent of the host OS. The development environment is exactly the same as the production environment.
  • If you’re having a hard time building / compiling the application code, then build it inside Docker. …

Image Source and Credits (Fabio Ferrari):

In this blog, we’ll discuss about the Filesystem of Docker Containers in particular. Docker container is created from a readonly template called docker image.

Docker Image

Each Docker image references a list of read-only layers that represent filesystem differences. Layers are stacked on top of each other to form a base for a container’s root filesystem. The Docker storage driver is responsible for stacking these layers and providing a single unified view.

When we create a new container, we add a new & thin writable layer on top of the underlying stack of layers present in the base docker image. All changes…

Image Source and Credits:

Docker takes advantage of several features of the Linux kernel to deliver its functionality.


Docker makes use of kernel namespaces to provide the isolated workspace called the container. When you run a container, Docker creates a set of namespaces for that container. These namespaces provide a layer of isolation. Each aspect of a container runs in a separate namespace and its access is limited to that namespace.

Docker Engine uses the following namespaces on Linux:

  • PID namespace for process isolation.
  • NET namespace for managing network interfaces.
  • IPC namespace for managing access to IPC resources.
  • MNT namespace for managing filesystem mount…

Image Source and Credits:

Though the above pic is self explanatory, we’ll just discuss the basics / CLI commands for working with docker containers.

Create container

Create a container to run it later on with required image.

docker create --name <container-name> <image-name>

Run docker container

Run the docker container with the required image and specified command / process. ‘-d’ flag is used for running the container in background.

docker run -it -d --name <container-name> <image-name> bash

Image Source and Credits:

In this blog, we’ll understand the PID 1 zombie reaping problem and how it can be solved with the help of init system inside the docker container. Though we have the ideal fact “one process one container” but most often we end up running few processes inside the container such as logging and monitoring agent.

As of today Docker does not run processes under a init process that properly reaps child processes, so it is indeed possible for the container to end up with zombie processes that cause all sorts of trouble.

Init Process

It is the top-most process started by the…

Image Source and Credits:

Docker provides lightweight virtualization with almost zero overhead. Primarily, you can benefit from an extra layer of abstraction offered by Docker without having to worry about the overhead. Many containers can be run on a single machine than with virtualization alone. Containers can be started and stopped within milliseconds.

In summary, Docker’s functionality falls into several categories:

  • Portable deployment of applications
  • Support for automatic building of docker images
  • Built-in version tracking
  • Registry for sharing images
  • A growing tools ecosystem from the docker API
  • Consistency among different environments
  • Efficient utilisation of resources

The feature that really sets Docker apart, is the…


Senior Software Engineer — Cloud Native and Distributed Systems

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store