Docker Container

Objective of this article to explain about Docker Container and why do we need to use them.

What is Docker Container?

A Container is a standard unit of software packages up code and all its dependencies, so the application runs quickly and reliably from one computing environment to another. Docker is the container based, industry best software. Docker container is lightweight, standalone, executable package of software that includes everything needed to run an application such as code, runtime, system tools, system libraries and settings.

Container images become containers at runtime and in the case of Docker containers, image become container when they run on Docker Engine. Docker container that runs on Docker Engine,
Standard: Docker created the industry standards for Containers, so they could be portable anywhere.
Lightweight: Containers share the machine OS system kernel, so does not require OS per application.
Secure: Docker provides the strongest default isolation capabilities in the industry and applications are safer in containers.

Why do we need to use Docker Container?

As shown in the below diagram, there could be the dependencies between applications and its underlying software which is using to run. There could be many chances of raising problems with infrastructural and dependencies issues.

Application dependencies without Docker support

That’s where docker helps us to containerize each and every application into individual containers. Each individual container contains its dependent code, dependencies, system configurations, etc. So, they run any where.

Application dependencies with Docker support

If you observed the difference between above two images, image without Docker shown the common library and dependencies which is shared across multiple applications. Image with Docker will clearly shows that each individual docker container contains it’s libraries and Dependencies. So, with docker there is not chance of getting the problems related to libraries and dependencies and there is no chance of saying it works in my machine.

Docker Hub vs Docker Desktop Vs Docker Enterprise

Objective of this article is to explain about Docker Desktop which is also known as Docker for Windows or Mac, Docker Enterprise and Docker Hub.

What is Docker Desktop?

Docker Desktop is also known as Docker for Windows/Mac. Docker desktop is the Community Edition(CE) of Docker and it’s designed to run on Windows 10 & Mac OS. Docker desktop provides an Easy-to-use development environment for building, shipping and running Docker containers. For more information about how to setup Docker Desktop, Click Here

Note: Docker desktop or Docker for windows will not compatible on below Windows-10 version. It may cause problems while installing or running containers in prior windows-10 version. So, make sure you are using Windows-10 version.

What is Docker Enterprise?

Docker Enterprise is the Enterprise Edition(EE) of Docker and it’s designed to run on Windows & Linux OS. Docker Enterprise Edition is paid and good to use when we are using multi-OS, multi-Linux or multi-cloud environments.

As per official Docker blog, Docker Enterprise Edition (EE) is the only platform that manages and secures applications on Kubernetes(K8s) in multi-Linux, multi-OS and multi-cloud customer environments. As a complete platform that integrates and scales with your organization, Docker Enterprise Edition gives you the most flexibility and choice over the types of applications supported, general used, and where it’s deployed.

What is Docker hub?

Docker hub is nothing like a app store/market place of docker container images. Docker hub is also known as Cloud-based application registry and development team collaboration services. We can access docker hub by using the below URL.

https://hub.docker.com/

Docker ToolBox for Windows

Docker Toolbox is for older Mac and Windows systems that do not meet the requirements of Docker Desktop for Mac and Docker Desktop for Windows. Mostly windows Home edition doesn’t support Docker Desktop.

Please follow below link to install docker tool box in windows :

https://docs.docker.com/toolbox/toolbox_install_windows/

After the installation ,following issue might occur in windows .

Issues :

  1. When we run Docker QuickStart terminal after the installation, following error pops up in command
  2. Unable to start the VM: C:\Program Files\Oracle\VirtualBox\VBoxManage.exe startvm default –type headless failed:
  3. VBoxManage.exe: error: Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT)
  4. VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole
  5. Details: 00:00:01.943299 Power up failed (vrc=VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT, rc=E_FAIL (0X80004005))
  6. Looks like something went wrong in step ´Checking status on default´… Press any key to continue…

Resolution :

The above error is because of Hyper Vision . We need to enable HyperVision in windows with the below steps:

->Run a command prompt as administrator and execute:

dism /Online /Disable-Feature:Microsoft-Hyper-V

Note : For some cases ,you will get Feature name Microsoft-Hyper-V is unknown. when you trying to disable Hyper-V from Powershell. Please run below command

DISM /Online /Disable-Feature:HypervisorPlatform

->Reboot windows and type below in command prompt /powershell as admin.

bcdedit /set hypervisorlaunchtype off

If the above issue is not resolved after enabling hypervision then please follow below steps

-> Open C:\Program Files\Docker Toolbox

when docker toolbox was installed it should be as “${DOCKER_MACHINE}” create -d virtualbox $PROXY_ENV “${VM}”

Please edit start file as “${DOCKER_MACHINE}” create -d virtualbox -virtualbox-no-vtx-check $PROXY_ENV “${VM}”

-> Run bcdedit in powershell as admin mode,If hyper vision launcher type status OFF then its fine. If it is AUTO then run bcdedit /set hypervisorlaunchtype off to change status to OFF.

-> Reboot the system and start docker quick start