# Docker Installation
###### tags: `Docker`
[TOC]
# How to Install Docker?
Whether you want **Docker for Mac/Windows/Linux** go to Docker's website and get to **Get Docker**.

Or you can also just click below link to get there.
**Docker's website "Get Docker" Tab:** https://docs.docker.com/get-docker/
## Window's Docker Installation
After Selecting **Docker Desktop for Windows** you will see the image below and by following the buttons in the image, you will get to download a **Docker Desktop Installer** and by double clicking it, you will start the installation.

## Windows Installation Error
### Error: "Docker Installation process can't complete due to file being in use elsewhere"
> **Solution:** [color=lightblue]
>1. Open Task Manager
>1. Select tab Details
>1. Click to the title of the table. Click mouse right to open context menu. Select select columns
>1. Select to show the command line column
>1. Search the process occupied that file
>1. Kill the process It's okay with me.

>**Reference:** [color=lightgreen]
https://stackoverflow.com/questions/53464007/docker-installation-process-cant-complete-due-to-file-being-in-use-elsewhere
### Error: "WSL 2 is not installed"
>WSL(Windows Sybsystem for Linux) is not installed as title states and it asks you to use **PowerShell** to execute the command **"Enable..."**.[color=red]
>
>**Note:** To use WSL2 your computer needs to support Hyper-V.
>**Note:** PowerShell is a program already provided in Windows.
>
>
#### What is PowerShell and how it differs from CMD?
>According to the reference below, **CMD is the original shell for the Microsoft DOS operating system**.
While **Windows PowerShell is the new Microsoft shell** that combines the old CMD functionality with a new scripting/cmdlet instruction set with built-in system administration functionality. [color=orange]
>
>
>
>**Reference:** https://www.varonis.com/blog/powershell-vs-cmd/
#### Check Hyper-V Support
>Your computer also needs to support Hyper-V Virtualization to run WSL 2. You can check your Hyper-V support by clicking **Use Hyper-V**. After clicking, the following window will show up.[color=lightblue]
>
>
### Error: "WSL2 installation in incomplete"
It tells you that you need to install **kernel update** by using the link provided.
>[color=red]
By clicking the Link provided, it will redirect you to the next website, as shown in image below. You will need to get the **update kit** from lastest package and execute it when it is done downloading.
>[color=red]
As the image shown above, you will need to set WSL2 as default version to work. To set up, **open PowerShell** and execute **wsl --set-default-version 2**
>[color=red]
## Mac's Docker Installation
### Download Docker.dmg
Download url: https://www.docker.com/get-started

By clicking **Docker Desktop** you will download a file called **Docker.dmg**. By executing it, you will open the package and run it up.

### Install Docker Application

### Mac: "Get Started with Docker"

#### Clone

#### Build

#### Run

#### Share

## Ubuntu's Docker Installation
>-Pending-
https://blog.gtwang.org/virtualization/ubuntu-linux-install-docker-tutorial/
# Was Installation successful?
## What do we see when installed succesfully?
### 1. Docker Program showing "Get Started"

### 2. Whale Icon
When the whale icon in the status bar stays steady, Docker Desktop is up-and-running, and is accessible from any terminal window.

## CMD Check
Open CMD(Windows Command Prompt) and run:
* **docker version** to check the version.
* **docker run hello-world** to verify that Docker can pull and run images.
>Command: **docker version** [color=orange]

>Command: **docker run hello-world** [color=orange]

# Docker Setting
By right clicking on Docker's Icon, you will be able to open its setting.

# Docker General Tab

## How to use Hyper-V?
If you do not want to use WSL2 and want to use **Hyper V** instead, you can remove the click from **Use the WSL2 2 base engine**. After that, just restart your computer.
**Note:** To use Hyper V, your windows need to be **windows professional**.
To check whether you are or not, go to windows > Setting > Sytem > About
>**WARNING:** [color=red]
You may encounter error if the Hyper-V was not used before, therefore, it will ask you to enable it on your computer.
**How to enable Hyper-V?**
1. Open PowerShell (**run as ADMINISTRATOR**)
1. Run command **Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All**
**Enable Containers Feature**:
Open PowerShell (**run as ADMINISTRATOR**) and run command below.
```=
Enable-WindowsOptionalFeature -Online -FeatureName containers –All
```
# Docker Resources Tab
Resource tab may or not have **Advanced** Tab, depending whether you are using **Hyper-V** or **WSL2**
>**The Advanced tab is only available in Hyper-V mode**, because in WSL 2 mode and Windows container mode these resources are managed by Windows. In WSL 2 mode, you can configure limits on the memory, CPU, and swap size allocated to the WSL 2 utility VM. [color=orange]
## **Hyper-V Type Resource Tab**

## **WSL2 Type Resource Tab**

# Docker Tools & Building Blocks
## Docker Engine
**Docker Engine** is installed when installing Docker Desktop/Tools or even when installing in linux.
## Daemon
**Daemon** is present in Docker Desktop which keeps running and ensures Docker works. This one contains a **Command Line Interface**, which is used to:
1. Run commands
1. Create Images & Containers
## Service Docker Hub
Allows to host our images in the cloud && web to share our systems with other people.
## Docker Compose
A Tool that is build up on Docker, which helps to manage more complex containers or multi-container easier.
## Kubernates
Kubernates can manage complex containerized applications that we want to deploy.