A Beginners Guide to Docker and How to use it

A Beginners Guide to Docker and How to use it

What is Docker?

What is Docker?

Docker is a powerful tool for developers that makes it easy to create, deploy, test and manage containers. Containers are a way of packaging up an application with all of its dependencies, such as libraries and other dependencies, and ship it as a single package. This makes it easier to deploy and run applications because everything the application needs is included in the container and the application can be run in any environment that supports Docker.

Additionally, Docker allows developers to share their containers with others, making it easier to collaborate and share work.

Overall, Docker is a valuable tool for developers that simplifies the process of deploying and running applications it also enables developers to collaborate and share their work more easily.

Problems that Docker Solved

  • Dependency management: One of the biggest challenges in software development is managing dependencies, or the libraries and other components that an application needs to run. Docker makes it easy to pack all of the dependencies for an application into a single container so that you can be sure that the application will run the same way in any environment.

  • Environment consistency: Another common problem is that different environments, such as development, staging, and production, can be set up differently and can have different versions of libraries and other dependencies. This can cause problems when an application that works in one environment doesn't work in another. Docker helps to solve this problem by ensuring that the same container can be run in any environment that supports Docker.

  • Scalability: As applications grow and their workloads increase, it can be challenging to scale them horizontally by adding more resources. Docker makes it easy to scale applications by adding more containers, which can be distributed across multiple machines.

  • Portability: One of the biggest advantages of Docker is that it allows you to run your applications in any environment that supports Docker. This means that you can develop and test your applications on your local machine, and then easily deploy them to different environments without worrying about differences between the environments.

Installing Docker

To install docker on your local machine you can visit Docker.com and you can see all your docker images on Docker Hub.

You can also visit the Official Documentation of Docker.

Docker Architecture and its Components

Docker Daemon

The Docker daemon (or Docker engine) is a background process that runs on a host machine and manages Docker containers. The Docker daemon is responsible for managing the containers, including creating, starting, stopping, and removing them.

It also communicates with other daemons to distribute workloads across multiple machines, and it provides a RESTful API that allows users and other processes to interact with it.

Docker Client / CLI

Docker CLI is the command-line interface for Docker, a tool used for building, managing, and deploying applications using containers. With Docker CLI, you can create and manage containers, images, networks, and more. Docker CLI provides a wide range of commands that allow you to interact with Docker and use it to build, run, and deploy your applications consistently and efficiently.

Docker Registries

It is where docker images can be stored for safekeeping. Docker Hub is a publicly available registry that anyone can use for free. Whenever you make a docker image it stores it on your local machine, you can keep it there or you can push the image to the docker hub.

Docker Image

A Docker image is a file that contains all the necessary code and dependencies for an application to run in a Docker container. It is a lightweight, standalone, and executable package that includes everything an application needs to run, including the code, a runtime, libraries, environment variables, and config files. Docker images are created using the docker build command and they are used to create Docker containers using the docker run command.

Overview of Docker

Basic Commands to mess around in Docker

  • Creating a Container
docker container create -i -t --name mycontainer alpine
6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752
docker container start --attach -i mycontainer
/ # echo hello world
hello world
  • Pulling Images
$ docker images
REPOSITORY      TAG      IMAGE ID     CREATED      SIZE
$ docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
7413c47ba209: Pull complete
0fe7e7cbb2e8: Pull complete
1d425c982345: Pull complete
344da5c95cec: Pull complete
Digest:sha256:c303f19cfe9ee92badbbbd7567bc1ca47789f79303ddcef56f77687d4744cd7a
Status: Downloaded newer image for ubuntu:18.04
$ docker images
REPOSITORY     TAG        IMAGE ID          CREATED         SIZE
ubuntu         18.04      3556258649b2      9 days ago      64.2MB
  • Running image to create a container

    $ docker run -it ubuntu:18.04
    root@4183618bcf17:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@4183618bcf17:/# exit
    exit
    
  • Listing out containers

    $ docker ps -a
    CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS
    4183618bcf17   ubuntu:18.04   “/bin/bash”   4 minutes ago   Exited
    
  • Removing a container

    docker rm /redis
    
    /redis
    

More Resources

  1. Docker tutorial for Beginners - by Kunal Kushwaha

  2. Docker Tutorial for Beginners - by Techworld with Nana

  3. Docker for Beginners - by Mosh

Conclusion

In conclusion, Docker is a powerful tool for building, managing and deploying applications using containers.

Docker also provides a rich ecosystem of tools and services, including the Docker CLI and Docker Hub, that make it easy for developers to build and share their applications with others. As a result, Docker has become a popular choice for organizations of all sizes, from small startups to large enterprises.

Subscribe to my Newsletter to get notified whenever I post another blog. Until then, have a nice day.

Did you find this article valuable?

Support Varchasv Hoon by becoming a sponsor. Any amount is appreciated!