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...

YAML - A Data Serialization language used in configuration files of networking

YAML full form is YAML Ain’t Markup Language. It’s mainly used in Grav, a flat-file based content management system for configuration files, blueprints and as well for page settings.  
YAML is a data serialization language that stores objects or data structures. It is not complex and can be understandable by users. Apart from configuration files, YAML files can be used where there is a need to store data or transmit data. 
YAML file acts as input for various software applications. YAML file follows the indentation to define the structure. One example where it is used for software applications is Cloudify that accepts configuration files as YAML files. 

Uses of YAML files: 
Let us understand the use of YAML files. 
  • Information in the YAML file can be translated to many other languages like JSON, CSV etc. 
  • YAML files provide powerful configuration settings without the use of code like CSS or JavaScript. 
  • Data transpiration to and from the server 
  • It provides the facility to configure the application with single YAML file having necessary parameters and itvalues. 
  • To transfer data between two components of an application, YAML file can be used. 
  • It also serves the purpose of intermediate storage. 

Basic rules of the YAML file: 
For the YAML file to be interpreted by any application or library and to convert it to other language types, follow the below basic rules: 
  • YAML file should have extension .yaml 
  • YAML is a case sensitive language 
  • Generally, as tabs are not universally not supported, YAML does not allow the use of tabs. Use spaces instead of tabs. 
Advantages of YAML: 
YAML has the following advantages: 
  • As there is no usage of delimiter, YAML is lighter than JSON and XML 
  • YAML file is simple and easy to read 
  • YAML files are easy to configure as they are easy to read 
  • YAML is the superset of JSON as any valid JSON code can be parsed by YAML compiler 
Disadvantages of YAML files: 
YAML files have the following disadvantages: 
  • At present, there are a lot of applications that are build using JSON or XML. It is difficult to migrate all these to YAML 
  • When compared to YAML, XML has matured ecosystem 
  • YAML has less support when compared with XML and JSON 
  • Indentation is strict in YAML. Without proper indentation, YAML does not work properly 
  • YAML has many ways to represent data. So, it is complex while processing YAML files and has less performance when compared with JSON and XML files 
Sample YAML File: 
In general, YAML files begin and end with “---” which indicates the start and end of the document. Common data types used in YAML files are lists and dictionaries. Dictionary has key-value pairs which are represented in the form of “key: value”. 
In YAML, all the elements of a list beginning at the same indentation will start with “-”. Multi-line comments are not supported in YAML. Single line comments in YAML starts with “#” symbol.  

Example 1: 
A YAML file that contains a list of vegetables is as follows: 
--- 
#List of Vegetables 
vegetables: 
  -carrot 
  -tomato 
  -cucumber 
--- 

Example 2: 
A YAML file that contains a dictionary is as below: 

--- 
#An employee Record 
pavan: 
  name: Pavan Kumar 
  job: Web Developer 
  skill: HTML and CSS  
--- 

Example 3: 
A YAML file that has both lists and dictionaries in it. In the below YAML file, the dictionary of an employee has a list of skills 

--- 
#An employee Record 
pavan: 
  name: Pavan Kumar 
  job: Web Developer 
  skills 
    -HTML 
    -CSS  
    -JavaScript 
--- 

Example 4: 
YAML provides a simple way of writing lists and dictionaries. In the dictionary, key-value pairs are enclosed in “{ }. In Lists, items are enclosed in “[ ]. A sample YAML file for this scenario is given below: 

--- 
 vegetables : [tomato, carrot, cucumber] 
pavan : {name : Pavan Kumar, job: Web Developer, skill: HTML and CSS} 
--- 

Conclusion: 
YAML is a recently emerging data serialization language. As with any other technology or programming language, it has both advantages and disadvantages. Some may find it difficult because of strict indentation in YAML. Choosing YAML to use in your project depends on the comfort of the person and your use cases in the project. 

Comments

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: ...