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

Vyos - An Open Source Network Operating System

What is  a  Network Operating System?   Networking Operating System (NOS) is an O perating system  that  has the capability to  support workstations, database sharing, application sharing, file ,  and printer access sharing among multiple computers in a network. In general ,  NOS is a specialized operating system used for devices like router, switch or firewall. Features of Networking Operating System:   NOS has the following features: Basic features like protocol support, processor support, hardware detection and multiprocessing support for applications Authentication, access control, authorization ,  and restriction facilities are supported to provide security Provides file service, web service, printing and replication Has Naming and Directory Management services Has  the provision  for user management and remote access & system management Also has internetworking features like routing and ...

Introduction to EPC Network and its architecture

What is EPC?   EPC stands for Evolved Packet Core. It is a framework to provide both voice and data on a 4G LTE (Long Term Evolution) network.   2G and 3G networks process voice using circuit switched domain and data using the packet-switched domain. But the EPC network unifies both data as well as voice on Internet Protocol (IP) Server architecture and treat it as an IP application.   Key Components of EPC:   The following components play a vital role in the EPC network:   Mobile Management Entity:  It takes care of session management, authentication of user and tracking of the user across the network   Serving Gateway (S-Gateway):  It is responsible for the routing of data packets across access networks   Packet Data Node Gateway (PGW):  It is an interface between the LTE network and other packet data networks. It also helps in maintaining Quality of Service (QoS) and deep inspection of the packe...