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

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  D ocker, build an image, create containers using  the  image, clearing and viewing containers i...

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

Virtual Interface Creation and deletion in Linux Operating System

Virtual interfaces are the interfaces that allows physical connection to have more than one interface. These help in tagging the LAN packet with ID’s that may be used to segregate the traffic or customer. This article focuses on the creation and removal of Virtual Interfaces using Open Source tool  Vlan   and command  ip  link  in Linux Operating system. All the commands are prefixed with  sudo  to run commands as a root user Vlan : Vlan  is an open source tool that helps in creating and removing the virtual interfaces over a physical interface. To use  Vlan , one needs to install  vlan  using  sudo  apt-get install  vlan   on Linux Operating System Adding Virtual Interface using  Vlan  tool: Assume you have a physical interface named enp0s4. To create a Virtual Lan or Sub interface, the command is  vconfig  add < Physical_Interface_Name > < tag_number > . ...