<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sandeep Valpasani</title>
    <description>The latest articles on DEV Community by Sandeep Valpasani (@sandeepv1404).</description>
    <link>https://dev.to/sandeepv1404</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F532772%2F1c3ed2c5-59b4-4876-8518-7c08aff4221e.jpeg</url>
      <title>DEV Community: Sandeep Valpasani</title>
      <link>https://dev.to/sandeepv1404</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sandeepv1404"/>
    <language>en</language>
    <item>
      <title>Kubernetes for beginners</title>
      <dc:creator>Sandeep Valpasani</dc:creator>
      <pubDate>Sun, 14 Aug 2022 22:15:00 +0000</pubDate>
      <link>https://dev.to/sandeepv1404/kubernetes-for-beginners-27kh</link>
      <guid>https://dev.to/sandeepv1404/kubernetes-for-beginners-27kh</guid>
      <description>&lt;p&gt;Before Jumping into Kubernetes, you need to have a good understanding in Docker. And you can checkout Here: &lt;a href="https://dev.to/sandeepv1404/docker-for-beginners-13n5"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Kubernetes?
&lt;/h3&gt;

&lt;p&gt;Kubernetes or K8S is an Open-Source Container Orchestration Tool which was originally developed by Google. It is useful for managing container applications in different deployment environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are its uses?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;It is useful for building microservice applications.&lt;/li&gt;
&lt;li&gt;It is useful for managing n number of containers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What are the benefits of K8S ?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;It has high availability&lt;/li&gt;
&lt;li&gt;It gives high performance&lt;/li&gt;
&lt;li&gt;Flexibility for developing applications and its components with different stacks. &lt;/li&gt;
&lt;li&gt;It is helpful for Backup/Restoring the data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Kubernetes Components
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Pod:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Its smallest unit of K8S&lt;/li&gt;
&lt;li&gt;Its useful for building one applicaton&lt;/li&gt;
&lt;li&gt;Each Pod has its own IP address&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Service:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;It has Permanent IP Address&lt;/li&gt;
&lt;li&gt;Lifecycle of Service and Pod are not connected&lt;/li&gt;
&lt;li&gt;It is useful in Load Balancing&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Ingress:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Its useful for hiding the IP Adrress and replacing it with Domain&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  ConfigMap:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;It is useful for storing external configuration of the application.&lt;/li&gt;
&lt;li&gt;The text is stored in plain text format, so for storing credentials we have Secret, which is a component in K8S.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Secret:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;It is used to store secret data.&lt;/li&gt;
&lt;li&gt;The text is stored in base64 format.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Storage:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;It can be used in pod and can store in local machine.&lt;/li&gt;
&lt;li&gt;Also, outside of the K8S cluster. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Deployment:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;It is a blueprint for creating pods.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  StatefulSet:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;It is useful for building stateful applications or databases.
&lt;/li&gt;
&lt;li&gt;Its difficult to deploy Applications with StatefulSet.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Kubernetes Architecture:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Node Processes:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Each node has multiple pods.&lt;/li&gt;
&lt;li&gt;Each node must be installed with 3 processes.&lt;/li&gt;
&lt;li&gt;It acts like worker node to the actual network.&lt;/li&gt;
&lt;li&gt;3 processes are Kubelet, Kubeproxy, Container Runtime.&lt;/li&gt;
&lt;li&gt;Kubelet interacts with both container and node&lt;/li&gt;
&lt;li&gt;Kubelet starts the pod with a container inside.&lt;/li&gt;
&lt;li&gt;Kubeproxy forwards the requests.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Master Processes:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;There will be four processes running on every master node.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>devjournal</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Install Fedora 35 Linux with Windows 11/10 (Dual Boot)</title>
      <dc:creator>Sandeep Valpasani</dc:creator>
      <pubDate>Sun, 12 Dec 2021 16:14:17 +0000</pubDate>
      <link>https://dev.to/sandeepv1404/install-fedora-35-linux-with-windows-1110-dual-boot-2ic0</link>
      <guid>https://dev.to/sandeepv1404/install-fedora-35-linux-with-windows-1110-dual-boot-2ic0</guid>
      <description>&lt;p&gt;Are you curious to work with the Linux Operating System inside your PC/Laptop? Then you're at the right place. This guide helps you in the hassle-free installation of Fedora Linux on your System. &lt;/p&gt;

&lt;p&gt;Now, we are going to install Fedora Workstation v35 on our system. &lt;/p&gt;

&lt;h3&gt;
  
  
  What is Fedora?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://getfedora.org/" rel="noopener noreferrer"&gt;Fedora Linux&lt;/a&gt; is a Linux distribution developed by the community-supported Fedora Project which is sponsored primarily by Red Hat, a subsidiary of IBM, with additional support from other companies.&lt;/p&gt;

&lt;p&gt;If you want to know more about Linux and its distributions, check it out &lt;a href="https://www.linux.com/what-is-linux/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;35GB+ free space in HDD/SSD&lt;/li&gt;
&lt;li&gt;8/16GB Pen drive&lt;/li&gt;
&lt;li&gt;Windows 11/10&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This guide is only for the system which has &lt;strong&gt;UEFI BIOS&lt;/strong&gt; and the type of SSD/HDD is &lt;strong&gt;GPT&lt;/strong&gt; and System Type is &lt;strong&gt;x64-based&lt;/strong&gt;.  &lt;/p&gt;

&lt;h3&gt;
  
  
  How to check the BIOS Mode of your system?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Click Start Button&lt;/li&gt;
&lt;li&gt;Search msinfo32 (or) System Information in the search bar&lt;/li&gt;
&lt;li&gt;Check BIOS Mode Property&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2bxwt7ayooxu50ggjdbn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2bxwt7ayooxu50ggjdbn.png" alt="System Information"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it's UEFI, you're good to go.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to check the SSD/HDD Mode of your system?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Click Start Button&lt;/li&gt;
&lt;li&gt;Search for &lt;code&gt;cmd&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;cmd&lt;/code&gt; as administartor&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;diskpart&lt;/code&gt; and press enter.&lt;/li&gt;
&lt;li&gt;Next, type &lt;code&gt;list disk&lt;/code&gt; and press enter.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frd40iezzs4ayl5xmeebz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frd40iezzs4ayl5xmeebz.png" alt="CMD Info"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you see &lt;code&gt;*&lt;/code&gt; under GPT of Disk 0, you're ready for installation of Fedora Linux in your System.&lt;/p&gt;

&lt;h3&gt;
  
  
  Softwares Required
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://getfedora.org/en/workstation/download/" rel="noopener noreferrer"&gt;Fedora Workstation ISO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42prt5st62h8540v00w6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42prt5st62h8540v00w6.png" alt="Fedora Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/pbatard/rufus/releases/download/v3.17/rufus-3.17.exe" rel="noopener noreferrer"&gt;Rufus&lt;/a&gt; for making USB bootable. Click &lt;a href="https://rufus.ie/" rel="noopener noreferrer"&gt;here&lt;/a&gt; to know more.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, it's time to create a bootable USB. So, format your USB beforehand. &lt;/p&gt;

&lt;h3&gt;
  
  
  Create a Bootable USB using Rufus
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Open Rufus and plug your clean USB stick into your computer.&lt;/li&gt;
&lt;li&gt;Rufus will automatically detect your USB. Click on Device and choose the USB you want to use from the drop-down menu.&lt;/li&gt;
&lt;li&gt;Make sure the Boot Selection option is set to &lt;strong&gt;Disk or ISO image&lt;/strong&gt; then click &lt;strong&gt;Select&lt;/strong&gt;. Rufus will open a file explorer browser window, locate the ISO image which you downloaded named &lt;code&gt;Fedora-Workstation-Live-x86_64-XX-X.X.iso&lt;/code&gt; to burn onto the USB, and select it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjyc28d6h9pmyrvi4o4j5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjyc28d6h9pmyrvi4o4j5.png" alt="Rufus"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Leave other options as default and click &lt;strong&gt;Start&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You’ll get a warning saying that &lt;strong&gt;any data on the USB will be destroyed&lt;/strong&gt; (this is normal). Click OK and Rufus will start creating the ISO image on the USB.&lt;/li&gt;
&lt;li&gt;Let it run in the background, jump to the next section.&lt;/li&gt;
&lt;li&gt;Once Rufus has finished creating the ISO image on the USB, you can close it and your bootable USB is ready to go!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Make a new Unallocated Partition.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Press the &lt;code&gt;Windows key + R&lt;/code&gt; on your keyboard to open the Run utility, or search for it in the Start menu.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Type &lt;code&gt;diskmgmt.msc&lt;/code&gt; and press &lt;strong&gt;OK&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A menu will appear with a list of all your hard drives. Right-click on the drive you want to partition and select &lt;strong&gt;Shrink Volume.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You'll be asked how much you want the drive to shrink. The &lt;strong&gt;amount you enter will be the amount of space left for your new partition.&lt;/strong&gt; The &lt;code&gt;total size after shrink&lt;/code&gt; will be the space left in the original partition.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter a value and Click &lt;strong&gt;Shrink&lt;/strong&gt;. (&lt;strong&gt;Note&lt;/strong&gt;: If you want 50GB partition, the value is 50 x 1024 = 51200).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now, you'll find a new Unallocated Partition under Disk 0.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flrk473csu1irnmz6buj3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flrk473csu1irnmz6buj3.png" alt="Unallocated Space"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/5fj814bmdspTmfBuJa/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/5fj814bmdspTmfBuJa/giphy.gif" alt="Half Job Done"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Reboot your system into BIOS Mode.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;To boot into BIOS, Press the below keys before OEM Logo (Brand Logo) appears. the key may be &lt;code&gt;ESC&lt;/code&gt;, &lt;code&gt;Del&lt;/code&gt;, &lt;code&gt;F1&lt;/code&gt;, &lt;code&gt;F2&lt;/code&gt;, &lt;code&gt;F10&lt;/code&gt;, &lt;code&gt;F12&lt;/code&gt;. If still, it's not booting into BIOS, Check the below step.&lt;/li&gt;
&lt;li&gt;Google your system model with BIOS mode at the end. You'll find the solution.
&lt;/li&gt;
&lt;li&gt;After booting into BIOS, disable &lt;code&gt;Secure Boot&lt;/code&gt; and Change the Boot Drive priority to &lt;code&gt;USB&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Save the Changes and Reboot.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Boot into Fedora
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If all steps have been performed correctly, you will see the below image. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcr6tmtob4jsw0jp1bj9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcr6tmtob4jsw0jp1bj9.jpg" alt="GRUB"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;code&gt;Test this media &amp;amp; start Fedora Workstation-Live XX&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Wait for some time, you'll see a window with two options. &lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Install to Hard Drive&lt;/strong&gt;. Again, wait for &amp;lt; 1 min.&lt;/li&gt;
&lt;li&gt;You will land on the below Window.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9pb1xduxot0dxytt7qi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9pb1xduxot0dxytt7qi.png" alt="Main Window"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Click on the &lt;code&gt;Keyboard&lt;/code&gt; option, Select your Keyboard Language and Click &lt;strong&gt;Continue&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Similarly, Click on the &lt;code&gt;Date &amp;amp; Time&lt;/code&gt; option, Select your Time Zone and Click &lt;strong&gt;Done&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Now, Click &lt;code&gt;Installation Destination&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnh7b5m4y3fv6uixreqdx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnh7b5m4y3fv6uixreqdx.png" alt="Installation Drive 1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your disk, Choose &lt;strong&gt;Custom&lt;/strong&gt; under Storage Configuration and Click on &lt;strong&gt;Done&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4engz9izhbpfxorxvvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4engz9izhbpfxorxvvo.png" alt="Disk 2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now, you'll be in the below window and also verify that the Available Space is your Unallocated Partition Space.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvc3udgij5vlbbogjmlos.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvc3udgij5vlbbogjmlos.png" alt="Disk Verify 3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on the &lt;strong&gt;+&lt;/strong&gt; icon, a popup appears, Choose &lt;code&gt;/boot/efi&lt;/code&gt; Under Mounting Point which is System's EFI partition. Enter &lt;code&gt;1024MiB&lt;/code&gt; in Desired capacity. Click on &lt;strong&gt;Add mount Point&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5xw8voryta8p5yawanfk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5xw8voryta8p5yawanfk.png" alt="EFI 4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Similarly, Click on the &lt;strong&gt;+&lt;/strong&gt; icon again, In popup, Choose &lt;code&gt;/&lt;/code&gt; Under Mounting Point which is called &lt;strong&gt;Root Partition&lt;/strong&gt;. Subtract 5GiB from Available Space and Enter remaining space in Desired capacity (Ex: 50 GiB). Click on &lt;strong&gt;Add mount Point&lt;/strong&gt;. And Verify it's &lt;code&gt;Device Type&lt;/code&gt; which is &lt;strong&gt;Btrfs&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F803kl8vio6vdk7e1lq1w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F803kl8vio6vdk7e1lq1w.png" alt="Root 5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Similarly, Click on the &lt;strong&gt;+&lt;/strong&gt; icon again, In Pop up, Choose &lt;code&gt;swap&lt;/code&gt; Under Mounting Point, which is swap memory. Enter the remaining space in Desired capacity (Ex: 5 GiB). Click on &lt;strong&gt;Add mount Point&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvtf7fdd8ji45bil117m9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvtf7fdd8ji45bil117m9.png" alt="Swap 6"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finally, you'll see all the partitions created. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzflc644wrcu37rmzks7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzflc644wrcu37rmzks7.png" alt="Partitions 7"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now, click on &lt;strong&gt;Done&lt;/strong&gt;. Verify the Summary of Changes. And click on &lt;strong&gt;Accept Changes&lt;/strong&gt;. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foirh7ulou92kifj9b62g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foirh7ulou92kifj9b62g.png" alt="Summary 8"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You'll see the below window. Now, click on &lt;strong&gt;Begin Installation&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0awnw8247ihof0wgj8a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0awnw8247ihof0wgj8a.png" alt="Main Page 9"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Relax for 10-15 mins.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;Finish Installation&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;The system will restart automatically and you'll see the GRUB Bootloader, Select Fedora, and Press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Enter your details and you'll be finally booted into Fedora Linux.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/uw20jL7BMnQRJUTxqR/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/uw20jL7BMnQRJUTxqR/giphy.gif" alt="You Made it"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thanks for following the guide. Hope this helps you in some way :)&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>opensource</category>
      <category>devjournal</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>AutoPort - Low Code Portfolio Generator</title>
      <dc:creator>Sandeep Valpasani</dc:creator>
      <pubDate>Wed, 08 Dec 2021 23:58:59 +0000</pubDate>
      <link>https://dev.to/sandeepv1404/autoport-low-code-portfolio-generator-l62</link>
      <guid>https://dev.to/sandeepv1404/autoport-low-code-portfolio-generator-l62</guid>
      <description>&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AutoPort&lt;/strong&gt; is a Project for making Portfolio using GitHub Actions. It uses &lt;a href="https://github.com/hugo-toha/hugo-toha.github.io"&gt;Toha Theme&lt;/a&gt; provided by &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; combined with the power of &lt;a href="https://github.com/features/actions"&gt;Github Actions.&lt;/a&gt; Thus, making the portfolio application without coding and also without setting up the project on the local system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Wacky Wildcards&lt;/p&gt;

&lt;h3&gt;
  
  
  Yaml File or Link to Code
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/sandeep-v1404"&gt;
        sandeep-v1404
      &lt;/a&gt; / &lt;a href="https://github.com/sandeep-v1404/autoport"&gt;
        autoport
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/fb6ca3c9c477ccf2fea290b90b5d3582e3c40e506b790b0c216caa607ca62a05/68747470733a2f2f736f6369616c6966792e6769742e63692f73616e646565702d76313430342f6175746f706f72742f696d6167653f6465736372697074696f6e3d31266465736372697074696f6e4564697461626c653d412532304e6f2532464c6f77253230436f6465253230506f7274666f6c696f2532306d6164652532307573696e672532304875676f253230616e64253230476974487562253230416374696f6e7326666f726b733d31266973737565733d31266c616e67756167653d31266c6f676f3d6874747073253341253246253246757365722d696d616765732e67697468756275736572636f6e74656e742e636f6d25324635373033383534332532463134353238303934372d34393437613665642d393130382d346230362d396532352d3130343064333730343839302e706e67266e616d653d31266f776e65723d31267061747465726e3d43697263756974253230426f6172642670756c6c733d31267374617267617a6572733d31267468656d653d4c69676874"&gt;&lt;img src="https://camo.githubusercontent.com/fb6ca3c9c477ccf2fea290b90b5d3582e3c40e506b790b0c216caa607ca62a05/68747470733a2f2f736f6369616c6966792e6769742e63692f73616e646565702d76313430342f6175746f706f72742f696d6167653f6465736372697074696f6e3d31266465736372697074696f6e4564697461626c653d412532304e6f2532464c6f77253230436f6465253230506f7274666f6c696f2532306d6164652532307573696e672532304875676f253230616e64253230476974487562253230416374696f6e7326666f726b733d31266973737565733d31266c616e67756167653d31266c6f676f3d6874747073253341253246253246757365722d696d616765732e67697468756275736572636f6e74656e742e636f6d25324635373033383534332532463134353238303934372d34393437613665642d393130382d346230362d396532352d3130343064333730343839302e706e67266e616d653d31266f776e65723d31267061747465726e3d43697263756974253230426f6172642670756c6c733d31267374617267617a6572733d31267468656d653d4c69676874" alt="[object Object]"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
AutoPort 🤖
&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;A Project for making Portfolio using GitHub Actions &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ABKpJP58--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.githubassets.com/images/icons/emoji/octocat.png" class="article-body-image-wrapper"&gt;&lt;img class="emoji" title=":octocat:" alt=":octocat:" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ABKpJP58--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.githubassets.com/images/icons/emoji/octocat.png" height="20" width="20"&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It uses &lt;a href="https://github.com/hugo-toha/hugo-toha.github.io"&gt;Toha Theme&lt;/a&gt; provided by &lt;a href="https://gohugo.io/" rel="nofollow"&gt;Hugo&lt;/a&gt; combined with the power of &lt;a href="https://github.com/features/actions"&gt;Github Actions.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/57038543/145279672-7ca688bf-73b8-41a9-b616-4dcda19ba485.jpg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NggWJ1Xr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/57038543/145279672-7ca688bf-73b8-41a9-b616-4dcda19ba485.jpg" alt="github-actions-png" height="200"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/57038543/145278635-0c85ad5c-de56-4e85-8c9e-ac61b2acb289.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sklrmNVU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/57038543/145278635-0c85ad5c-de56-4e85-8c9e-ac61b2acb289.png" alt="github-actions-png" height="200"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iQiTpwJa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png" alt="-------------------------------------------------------------"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
Sections 📸
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Home Page&lt;/li&gt;
&lt;li&gt;About&lt;/li&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;li&gt;Experiences&lt;/li&gt;
&lt;li&gt;Projects&lt;/li&gt;
&lt;li&gt;etc.,&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
How to use?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Click on Use Template Button. It will create a fork.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/57038543/145306926-3670f57d-00e0-4ca3-bb57-36f7bd2f5d4e.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5DSYroGT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/57038543/145306926-3670f57d-00e0-4ca3-bb57-36f7bd2f5d4e.png" alt="1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add a new name to the repository and choose private/public. Wait for 2/3 mins.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/57038543/145306932-a4d9c1cf-e4c3-47f2-a533-10a8d12b2125.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NRH7UqZ0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/57038543/145306932-a4d9c1cf-e4c3-47f2-a533-10a8d12b2125.png" alt="2"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click on Settings and scroll down to GitHub Pages and choose &lt;code&gt;gh-pages&lt;/code&gt; branch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/57038543/145306934-5c9b68b8-8b99-4092-a783-98fd8740f9b3.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vl4xuMGA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/57038543/145306934-5c9b68b8-8b99-4092-a783-98fd8740f9b3.png" alt="3"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click on Save and Wait for 2/3 mins and refresh the page.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/57038543/145306938-7339e711-30a6-4a06-9ec6-633c15696430.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XTdviJ96--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/57038543/145306938-7339e711-30a6-4a06-9ec6-633c15696430.png" alt="5"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Navigate to the link and you can see the portfoliio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/57038543/145306940-5f2d0269-0392-4632-adea-b8329ea60a95.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tw-o6JrW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/57038543/145306940-5f2d0269-0392-4632-adea-b8329ea60a95.png" alt="6"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click on Issues Tab -&amp;gt; &lt;code&gt;New Issue&lt;/code&gt; (Located at Right Side) -&amp;gt; You will see the below page.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/57038543/145306943-f5209639-8e26-43b2-a0cd-2cff31a52718.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sqjahyRX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/57038543/145306943-f5209639-8e26-43b2-a0cd-2cff31a52718.png" alt="7"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click on &lt;code&gt;Get Started&lt;/code&gt; Button in About section.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/57038543/145306944-7eb50d06-dcd2-4ea9-af80-4bd684fd513e.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z0zgnVTJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/57038543/145306944-7eb50d06-dcd2-4ea9-af80-4bd684fd513e.png" alt="8"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modify the content according to your profile and click on &lt;code&gt;Submit Issue&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/57038543/145306947-ec992b6e-5db0-4e26-bcf2-9f252d73cfa3.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xdKTkIDa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/57038543/145306947-ec992b6e-5db0-4e26-bcf2-9f252d73cfa3.png" alt="9"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update the &lt;code&gt;config.yaml&lt;/code&gt; file located in root of the repository according to your URL in 1st Line…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/sandeep-v1404/autoport"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://gohugo.io/"&gt;Hugo&lt;/a&gt;: It's The world’s fastest framework for building websites.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/hugo-toha/hugo-toha.github.io"&gt;Toha Theme&lt;/a&gt;: A theme works with Hugo Framework.&lt;/p&gt;

&lt;p&gt;Checkout the provided themes &lt;a href="https://themes.gohugo.io/"&gt;here.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I'm thankful to GitHub and DEV platform for the &lt;strong&gt;2021 GitHub Actions Hackathon&lt;/strong&gt; where I got motivation and resources to work with GitHub Actions.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>actionshackathon21</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>github</category>
    </item>
    <item>
      <title>Docker for beginners</title>
      <dc:creator>Sandeep Valpasani</dc:creator>
      <pubDate>Fri, 27 Aug 2021 19:46:27 +0000</pubDate>
      <link>https://dev.to/sandeepv1404/docker-for-beginners-13n5</link>
      <guid>https://dev.to/sandeepv1404/docker-for-beginners-13n5</guid>
      <description>&lt;p&gt;We will go through the commands after the basic understanding of Docker. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is Docker ?
&lt;/h2&gt;

&lt;p&gt;Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is a container ?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It's used to package application with required dependencies and configuration which the app uses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It can be easily shared between the team. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It increases efficiency in development and deployment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technically, Container is made using Layers of Small Sized Linux Alpine Images with Application Image at top.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where containers are stored ?
&lt;/h2&gt;

&lt;p&gt;Containers are stored in the form of Images. These Images can be uploaded in  &lt;/p&gt;

&lt;p&gt;1) Container Repository&lt;br&gt;
2) Private Repo&lt;br&gt;
3) Docker Hub (Public)&lt;/p&gt;
&lt;h2&gt;
  
  
  Why container ?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;In Development&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Before Containers&lt;/th&gt;
&lt;th&gt;After Containers&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Different versions or installation of Applications in each Operating System&lt;/td&gt;
&lt;td&gt;A Isolated OS layer with Packaged Applications&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mismatched Configuration&lt;/td&gt;
&lt;td&gt;Predefined Configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Installation after tedious setup&lt;/td&gt;
&lt;td&gt;Installation with one command&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;In Deployment&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Before Containers&lt;/th&gt;
&lt;th&gt;After Containers&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Environmental Configuration on the servers&lt;/td&gt;
&lt;td&gt;Predefined Configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dependencies Version Conflicts&lt;/td&gt;
&lt;td&gt;All dependencies are predefined&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  What is Docker Image and Docker Container ?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Docker Image is the Actual Package.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Docker Container is the running environment of Image which is pulled to local system and is used to start the application.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Docker vs Virtual Machine
&lt;/h2&gt;

&lt;p&gt;To understand how docker works on OS level, lets understand how OS is made.&lt;/p&gt;

&lt;p&gt;Operating System has 3 layers:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Application Layer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kernel Layer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hardware Layer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In operating System, Application runs on Kernel Layer. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Docker&lt;/th&gt;
&lt;th&gt;Virtual Machine&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;It virtualizes the Application Layer&lt;/td&gt;
&lt;td&gt;It virtualizes the Kernel Layer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Docker Image contains the Application Layer&lt;/td&gt;
&lt;td&gt;It has both Kernel and Application Layer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;It uses host machine's Kernel&lt;/td&gt;
&lt;td&gt;It uses it's own Kernel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Smaller in Size&lt;/td&gt;
&lt;td&gt;Larger in Size&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;It starts and runs much faster&lt;/td&gt;
&lt;td&gt;Its slower.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Docker Installation :&lt;/p&gt;



&lt;p&gt;Docker Basic Commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker pull hello-world 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It pulls latest Image of hello-world to local system.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker pull hello-world:&amp;lt;VERSION&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It pulls specific version Image of hello-world to local system.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It shows all the images in local system.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It lists all the running containers in local system.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It checks if image is present,if not present it pulls the image and then runs that image.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It checks if image is present,if not present it pulls the image and then creates a new container and runs in detached mode and returns ID of that container.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker stop &amp;lt;ID&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It stops the container with given container ID.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker start &amp;lt;ID&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It starts the container with given container ID.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps &lt;span class="nt"&gt;-a&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It lists the running and stopped containers.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;rm&lt;/span&gt; &amp;lt;ID&amp;gt;/&amp;lt;NAME&amp;gt; &lt;span class="nt"&gt;-f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It removes the container with given container ID or name.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;rm&lt;/span&gt; &amp;lt;ID&amp;gt;/&amp;lt;NAME&amp;gt; &lt;span class="nt"&gt;-fv&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It removes the container and the volume associated with it.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker volume &lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It lists all the volumes and the volume associated with it.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker rmi &lt;span class="si"&gt;$(&lt;/span&gt;docker images &lt;span class="nt"&gt;--filter&lt;/span&gt; &lt;span class="s2"&gt;"dangling=true"&lt;/span&gt; &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="nt"&gt;--no-trunc&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It removes all the volumes which are not in use by the containers. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Port Binding while using two version's of Same Application
&lt;/h2&gt;

&lt;p&gt;As we know, Specific application has a default port in Containers. If we want to use two versions of same application and if both versions run on same port then it is not possible to use the specific one. Then we need to bind the port of container in order to use that Application on the port which is not being used on the local system.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt;&amp;lt;PORT&amp;gt;:&amp;lt;C_PORT&amp;gt; &amp;lt;IMAGE_NAME&amp;gt; &lt;span class="o"&gt;(&lt;/span&gt;or&lt;span class="o"&gt;)&lt;/span&gt; &amp;lt;CONTAINER_ID&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;where &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;PORT= System's port on which application should run&lt;br&gt;
C_PORT= Default Container's port on which it runs&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker logs &amp;lt;CONTAINER_ID&amp;gt; &lt;span class="o"&gt;(&lt;/span&gt;or&lt;span class="o"&gt;)&lt;/span&gt; &amp;lt;CONTAINER_NAME&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It shows the logs of the container.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &amp;lt;PORT&amp;gt;:&amp;lt;C_PORT&amp;gt; &lt;span class="nt"&gt;---name&lt;/span&gt; &amp;lt;C_NAME_BY_USER&amp;gt; &amp;lt;IMAGE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;where&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;C_NAME_BY_USER = container name given by user &lt;br&gt;
This command changes the name of the container.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; &amp;lt;CONTAINER_NAME&amp;gt; /bin/bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It gives access to the terminal in the container.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker network create &amp;lt;NETWORK_NAME&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;This command creates a new network&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker network &lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Lists all the networks&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker network inspect &amp;lt;NETWORK_NAME&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Gives more information about the container.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Dockerfile
&lt;/h3&gt;

&lt;p&gt;This is how a basic docker file looks like&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; node:16&lt;/span&gt;
&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /app&lt;/span&gt;
&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; package.json .&lt;/span&gt;
&lt;span class="k"&gt;RUN &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; . ./&lt;/span&gt;
&lt;span class="k"&gt;ENV&lt;/span&gt;&lt;span class="s"&gt; PORT 3000&lt;/span&gt;
&lt;span class="k"&gt;EXPOSE&lt;/span&gt;&lt;span class="s"&gt; ${PORT}&lt;/span&gt;
&lt;span class="k"&gt;CMD&lt;/span&gt;&lt;span class="s"&gt; ["npm","run","dev"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Environment Variables
&lt;/h3&gt;

&lt;p&gt;They can be specified in both Dockerfile and command too.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:3000 &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3000 &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; node-app node-app-image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;where -e is option for ENV and also --env can be used. &lt;/p&gt;

&lt;h3&gt;
  
  
  Persistance in Docker
&lt;/h3&gt;

&lt;p&gt;When a file is changed in the local system, by default it is not updated in the container. We need to make it persistant so that whenever a change is done, it should get updated in the container. This can be achieved by volumes in docker.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-v&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;:/app"&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:3000 &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; node-app node-app-image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;where &lt;/p&gt;

&lt;p&gt;$(pwd)= present working directory&lt;br&gt;
/app  = working directory in container&lt;/p&gt;

&lt;p&gt;Check &lt;a href="https://stackoverflow.com/questions/48522615/docker-error-invalid-reference-format-repository-name-must-be-lowercase"&gt;this&lt;/a&gt; out to find why we need to specify &lt;code&gt;"$(pwd):/app"&lt;/code&gt; in the command. &lt;/p&gt;
&lt;h3&gt;
  
  
  Security Practices
&lt;/h3&gt;

&lt;p&gt;After making the docker persistance using above instructions, if you try to add any file using terminal of the container, it will create the file in the container as well as in the local system since it has been synced with volumes. This is not a good practice.To prevent this, we can add &lt;code&gt;:ro&lt;/code&gt; in the -v option which means read only. So, it makes container read only, and creating files is impossible.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-v&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;:/app:ro"&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; /app/node_modules &lt;span class="nt"&gt;-p&lt;/span&gt; 3000:3000 &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; node-app node-app-image

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Docker Compose
&lt;/h3&gt;

&lt;p&gt;This is how a simple docker-compose.yaml looks like&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;3"&lt;/span&gt;
&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;node-app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;3000:3000"&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./:/app&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;/app/node_modules&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;PORT=3000&lt;/span&gt;
    &lt;span class="c1"&gt;# env_file:&lt;/span&gt;
    &lt;span class="c1"&gt;#   - ./.env&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This file can be used to spin up an image and for automatically building the container too.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;This command is used to build image and container using docker-compose.yaml file and in detached mode.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose &lt;span class="nt"&gt;-f&lt;/span&gt; docker-compose.yml &lt;span class="nt"&gt;-f&lt;/span&gt; docker-compose.dev.yml up &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;--build&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;This command is used to build image and container using custom docker-compose.yaml files and in detached mode.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Docker Networks
&lt;/h3&gt;

&lt;p&gt;To make containers talk with each other, we need to use docker networks. By default, we can use IMAGE_NAME in place of IP_ADDRESS which acts as a DNS for the container we want to connect with.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;
&lt;span class="nx"&gt;mongoose&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mongodb://&amp;lt;user&amp;gt;:&amp;lt;password&amp;gt;@mongo:27017/?authSource=admin&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Successfully connected to DB&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>docker</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
