Skip to main content

Commands used in Dockefile - Part4

  Docker is an opensource tool used for virtualization and deliver software in the form of packages called Containers. It is one of the most important tools used in networking domain.  Dockerfile  is a template for building the image which contains commands needed to package the software. In this post, I am going to explain the commands ADD & COPY used in  Dockerfile .   ADD Command:   ADD command is used to copy files, directories or files from remote URLS to destination path in the image. The source paths can contain wildcards.   If the destination has relative path, it is relative to the Working directory of the image. Note that source path is always relative to the Docker build context.   ADD command will not support authentication. So, if there are any protected files to be added in  Dockerfile  building, use other tools like curl or  wget   Dockerfile  copying Single & Multiple files, directory using ADD inst...

Introduction to Docker and Containers - Overview, Installation, Image and Container creation

Docker is an open source software used to develop and deliver the software in the form of packages known as Containers. Software used for hosting containers is known as Docker Engine. Docker is written in the Go programming language.

Containers are isolated from each other. Each container has its own libraries, configuration files and there are mechanisms through containers to communicate with each other. These containers are created from images which can be modified or customized based on the need. All the containers share the host operating system and hence these are light-weight.

An Image from which containers are created is nothing but a package of code, libraries, environment variables and configuration files.

For knowing differences between docker containers and virtual machines, click here. Here we learn how to install Docker, build an image, create containers using the image, clearing and viewing containers in the Linux operating system.

Docker provides two editions to use the software. One is free Docker Community Edition (CE) and another is Docker Enterprise Edition (EE).

Docker CE & EE features
Docker CE is free where Docker EE is a paid service. Docker CE provides container engine, built-in orchestration, networking and security purposes. This edition is used by individuals or small teams to experiment with apps built using containers.

Docker EE is for the enterprise development and IT industries who will be developing business-critical applications. It has the following features in addition to features of the Community edition.
  • Scanning of Images for security reasons
  • Image management as well as container app management
  • Provides certified infrastructure and plugins
  • Also provides Independent Software Vendor Containers
Installing Docker:
For learning purpose, we will be using Docker CE. Below are the steps to be followed for installing Docker CE in the Linux Operating system and Ubuntu distribution.

Note: To remove the docker if already present in your system use this command sudo apt-get remove docker docker-engine docker.io containerd runc

  1. First, update the package list in your system using command sudo apt-get update
  2. To download software repositories via HTTPS, run the command sudo apt-get install     apt-transport-https ca-certificates  curl     gnupg-agent software-properties-common
  3. Add dockers GPG key to your system using command curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  4. Verify that the key is added to the system using command sudo apt-key fingerprint 0EBFCD88
  5. To add the docker repository to system use sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 
  6. Update the apt package list using sudo apt-get update
  7. To install the latest version of docker use sudo apt-get install docker-ce docker-ce-cli containerd.io

Verification of Docker Installation:
After installing the docker, follow the below steps to ensure that Docker CE is installed properly. 
  • To check the version of docker, use docker version command. It gives the version details of the API, built date etc. details which means docker is installed
  • Another way to verify the docker installation is to run hello-world image using sudo docker run hello-world command which is pulled from the docker library and prints Hello from Docker!
Building Image using Docker:
To build an image using Docker tool, we need to create Dockerfile and have the code at the same path where Dockerfile is present.
Consider hello.py which prints “Hello World, Welcome to Docker” is as below:
print("Hello-World")
print("Welcome to Docker")

The sample Dockerfile for executing hello.py file in the container is
FROM ubuntu:16.04 
#Base Image
COPY hello.py /root
#Copy hello.py to root directory in Container
RUN chmod +x /root/hello.py 
#Set executable permission for hello.py
RUN apt-get update
#Update Package list in container
RUN apt-get install python -y 
#Install Python in Container

The Dockerfile and hello.py should be in the same path. Go to that path and run sudo docker build --tag=hello . Here in this command hello is the name of the image to be created.

To create a container with a random name and execute hello.py using python /root/hello.py inside the container, use sudo docker run -it hello bashHere in this command hello is the name of the image.

Then execute hello.py which displays the welcome message.

Comments

Post a Comment

Popular posts from this blog

Notes on IPv4, IPv6 and MAC representations

  In companies related to networking domain, “ Explain IPv4, IPv6 and MAC ” is one of the common questions asked in technical interview. This post provides overview of these concepts. IP: IP is the protocol used in Networking layer. It is responsible for the delivering packets from source to destination based on the identifier known as IP address of the device. There are two popular ways of representing the devices in the network. They are: IPv4  (Internet  Protocol version 4) IPv6 (Internet Protocol version6) IPv4:   This version of IP uses 32-bit addresses to identify the device on the network.  Therefore,  the total number of addresses possible with IPv4 is 2 32 . These  32-bit  addresses are divided into 4 octets (batch of 8 bits) with each octet represented in decimal numbers and octets are separated by dot. In IPv4 the loopback address of a device is  127.0.0.1 . IPv4 supports unicasting, broadcasting and multicasting. To map IPv4 addre...

Commands used in Dockefile - Part4

  Docker is an opensource tool used for virtualization and deliver software in the form of packages called Containers. It is one of the most important tools used in networking domain.  Dockerfile  is a template for building the image which contains commands needed to package the software. In this post, I am going to explain the commands ADD & COPY used in  Dockerfile .   ADD Command:   ADD command is used to copy files, directories or files from remote URLS to destination path in the image. The source paths can contain wildcards.   If the destination has relative path, it is relative to the Working directory of the image. Note that source path is always relative to the Docker build context.   ADD command will not support authentication. So, if there are any protected files to be added in  Dockerfile  building, use other tools like curl or  wget   Dockerfile  copying Single & Multiple files, directory using ADD inst...

Notes on HTTP Response Status codes

  In Networking domain or API testing, it is often common that we should be able to interpret the status codes in Http Response received when we send a request and take a decision . .  Also, in technical interviews related to networking domain, “ Explain Http Status codes”  is one of the common interview questions. In this post, I am giving overview of Http Status codes. Http response status codes can be broadly classified into below 5 categories:   1xx - Informational codes 2xx - Success codes 3xx - Redirection codes 4xx - Client Error or Bad Request 5xx - Server Error 1xx Codes: 1xx codes means that server has received the request and understood the need of the client. These status codes indicate client to wait for getting a final response. An example where we may get these codes is that the client asking server to switch protocols. 2xx Codes: 2xx codes means that server has received, understood and accepted. Some important codes and meaning are given below: ...