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

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

Assuming the source files & directories mentioned in the below Dockerfile are present relative to the build context. Also, another assumption for below docker file is that there is minimum one java file in the path relative to the build context. 


FROM ubuntu:16.04 
ADD App.py /root/Manideep/ 
ADD config.ini Settings.ini /root/Config/ 
ADD *.java /root/Application/ 
ADD Scripts /root 

Line1 specifies the base image to be Ubuntu with version 16.04. Line2 copies App.py to the Manideep directory which in /root.  If in Line2,  / after Manideep is not present, it copies App.py content to the file named Manideep in /root. Line 3 copies multiple files in to a single directory and while copying multiple files, the destination path must end with a /. Line 4 uses specifying source file using regular expressions and copies them in to /root/Application/ path. In line 4 also, the destination path must end with a /. Line 5 copies contents of directory Scripts to /root path. 

Also note that remote files copied to image will have permissions 600. 

Dockerfile copying Remote files, Local Tar Archive using ADD instruction: 

Assuming the files mentioned are present in local system relative to build context and path and remote system. Please find the below Dockerfile copies remote file and local tar file to destination path of the image 


FROM ubuntu:16.04 
ADD https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DV0101EN-SkillsNetwork/Data%20Files/Canada.xlsx /root/ 
ADD pandas.tar.gz /root/Pandas/ 

Line1 specifies the base image to be Ubuntu with version 16.04. Line2 downloads and copies remote Excel file to /root/ path. Line 3 extracts the tar and store it contents to the /root/Pandas path. Note that extraction works only for some standards and for remaining simple tar file is copied to the destination without extraction. Also, this extraction is applicable only for local tar files 


COPY Command: 

COPY command purpose is also to copy files and directories from source relative to build context to destination path of the image. 


The main difference between ADD and COPY is that remote files and local tar extraction is  not possible with COPY command. 


Dockerfile copying Single, Multiple files and directory using COPY instruction: 

Assuming the files, directories mentioned in the Dockerfile are present in path relative to build context. Also, another assumption for below docker file is that there is minimum one java file in the path relative to the build context. 


FROM ubuntu:16.04 
COPY App.py /root/Manideep/ 
COPY config.ini Settings.ini /root/Config/ 
COPY *.java /root/Application/ 
COPY Scripts /root 

Line1 specifies the base image to be Ubuntu with version 16.04. Line2 copies App.py to the Manideep directory which in /root.  If in Line2,  / after Manideep is not present, it copies App.py content to the file named Manideep in /root. Line 3 copies multiple files in to a single directory and while copying multiple files, the destination path must end with a /. Line 4 uses specifying source files using regular expression and copies them in to /root/Application/ path. In line 4 also, the destination path must end with a /. Line 5 copies contents of directory Scripts to /root path.

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

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

Types of Tunnels in Computer Networking

Tunneling is a mechanism or protocol to ensure secure transmission of data between two networks. Through tunneling, private networks can communicate or send information to  a  public network like the Internet using the process of encapsulation. Even though they are private data packets, they appear as public packets and tunneling helps these packets to be unnoticed to  a  public network. Tunneling is also  known  a s   Port Forwarding .   Types of Tunnels:   There are several types of tunnels. Some of them are explained in this article.    Microsoft VPN (PPTP)   CIPE VPN   Open VPN   SSL / TLS VPN   GRE tunnel   IPsec tunnel   Before going deep into these tunnels, let us understand the VPN and it s  purpose.   Virtual Private  Network  ( VPN):   VPN is the technology in  the  networking industry which is based on the tunneling c...