Skip to content
Menu
DevSecOps Now!!!
  • About
  • Certifications
  • Contact
  • Courses
  • DevSecOps Consulting
  • DevSecOps Tools
  • Training
  • Tutorials
DevSecOps Now!!!

Step-by-Step Guide: How to Install Docker in Linux

Posted on April 15, 2025

Limited Time Offer!

For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!

Enroll Now

What is Docker?

Docker is a platform used to develop, ship, and run applications inside containers. Containers are lightweight, portable, and self-sufficient environments that ensure your app runs smoothly on any system, regardless of differences in configuration.

If you’re a developer, sysadmin, or just curious, learning Docker is a huge step forward in modern DevOps and deployment workflows.


๐Ÿ“Œ Prerequisites

Before diving in, ensure the following:

  • You are using a 64-bit Linux system.
  • You have a terminal with sudo access.
  • Your system is connected to the internet.
  • Recommended: Ubuntu 20.04 LTS or later, or Debian 10+.

โœ… Step 1: Update Your System

Why?
Itโ€™s important to update your local package list to ensure youโ€™re working with the latest repositories and security patches.

sudo apt update && sudo apt upgrade -y
  • apt update: Updates the list of available packages.
  • apt upgrade: Installs the newest versions of packages on your system.

โœ… Step 2: Install Required Dependencies

Docker requires some dependencies to handle repositories and HTTPS.

sudo apt install ca-certificates curl gnupg lsb-release -y
  • ca-certificates: Ensures HTTPS connections are trusted.
  • curl: Used to download files from the internet.
  • gnupg: Required to add GPG keys for verifying packages.
  • lsb-release: Provides info about your distribution, used in repo setup.

โœ… Step 3: Add Dockerโ€™s Official GPG Key

Why?
This key is used to verify Docker packages and make sure they haven’t been tampered with.

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  • mkdir -p: Creates a directory if it doesnโ€™t already exist.
  • curl ... | gpg --dearmor: Downloads and converts the Docker GPG key.

โœ… Step 4: Add the Docker Repository

We now add the Docker repository to our APT sources list so we can install Docker directly from Docker’s official servers.

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • dpkg --print-architecture: Returns your CPU architecture (e.g., amd64).
  • lsb_release -cs: Returns your codename (e.g., focal, jammy).
  • This command sets up the Docker repository specific to your system version.

โœ… Step 5: Update APT and Install Docker Engine

Now that Dockerโ€™s repo is set up, you can install Docker using the following commands:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
  • docker-ce: The core Docker engine.
  • docker-ce-cli: Command-line tools to interact with Docker.
  • containerd.io: A core container runtime.
  • docker-compose-plugin: Allows you to use docker compose commands (note the space, new syntax).
  • docker-buildx-plugin: Used for building multi-platform images.

โœ… Step 6: Verify That Docker Is Installed and Running

Check the Docker version:

sudo docker --version

Expected output:

Docker version 24.x.x, build xxxx

Run a test container:

sudo docker run hello-world

This command pulls a test image and runs a container from it. It verifies:

  • Docker is installed correctly
  • The Docker daemon is active
  • The Docker engine can pull images from the internet

โœ… Step 7: Use Docker Without sudo (Optional but Recommended)

By default, Docker needs sudo for security. You can allow your user to run Docker directly by adding them to the Docker group:

sudo usermod -aG docker $USER
  • usermod -aG: Adds your user to a group (here, docker).
  • $USER: Refers to your current username.

Important: Log out and log back in after this step. Otherwise, changes wonโ€™t take effect.

Then test without sudo:

docker run hello-world

โœ… Step 8: Enable Docker to Start on System Boot

If you want Docker to always start after a reboot (which is useful for servers), run:

sudo systemctl enable docker
  • This ensures Docker starts every time your machine does.

๐ŸŽฏ Additional: Useful Docker Commands

CommandDescription
docker psLists running containers
docker ps -aLists all containers (including stopped)
docker imagesLists downloaded Docker images
docker stop <container_id>Stops a running container
docker rm <container_id>Deletes a container
docker rmi <image_id>Deletes a Docker image
docker exec -it <container_id> bashAccess container terminal

๐Ÿ“Œ Troubleshooting Tips

  • If docker run hello-world fails, check:
    • Is the Docker daemon running? sudo systemctl status docker
    • Any firewall blocking Docker?
    • Try restarting: sudo systemctl restart docker.
Post Views: 2,972
Subscribe
Login
Notify of
guest
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
  • DevSecOps in Modern Software Engineering: A Comprehensive Guide for Professionals
  • Laravel Posts Installation Guide
  • Strategies to Align DevSecOps With Agile and DevOps Practices
  • How to Fix Laravel Migration Error: Field โ€˜idโ€™ Doesnโ€™t Have a Default Value in the Migrations Table
  • A Practical Guide to Proving DevSecOps Business Value for Engineering Leaders
  • Mastering Secure Software Delivery by Solving DevSecOps Adoption Challenges
  • Operationalizing Security for Faster and Safer Software Deployments
  • DevSecOps Server Security Checklist 2026: 50 Must-Check Points Before Going Live
  • The Complete DevOps Salary Overview for IT Professionals
  • The Modern DevOps Certification Guide: Roadmaps for Every Engineering Role
  • Security Champions in DevSecOps: Responsibilities and Best Practices
  • The DevSecOps Handbook for Shift-Left Security
  • Top DevSecOps Principles for Effective Secure Software Delivery
  • Guide to DevSecOps Maturity Levels for Platform and Security Teams
  • Canada PR CRS Calculator: Express Entry Points System Explained
  • Austria PR Points Calculator: Ultimate Guide to Navigating the Red-White-Red Card System
  • The Essential Guide to Enterprise DevSecOps Implementation
  • How to Set Up Claude Code Agent on a Local Windows Laptop and Use claude Command from Anywhere
  • DevOps and DevSecOps Explained: Bridging the Gap Between Speed and Security
  • Comprehensive Manual on DevOps Methodologies and Cloud Native Engineering
  • The Master Guide to Immigration Points: Calculating Your Path to Canada, Australia, and Beyond
  • How to Skip the Activation Email and Password Reset After Google Login in Keycloak Auto-Link Existing Users in First Broker Login
  • Free SSL Certificate Generation Tutorial for Any Website Using Certbot and Apache
  • The Ultimate Guide to Certified FinOps Professional: Skills, Levels, and Career Impact
  • Certified FinOps Manager: Essential Skills for Modern Cloud Operations
  • How to Use Claude AI for Programming: Complete Guide for Developers to Boost Productivity
  • The Definitive Guide to Certified FinOps Engineer: Master Cloud Value Engineering
  • A Comprehensive Guide to the Certified FinOps Architect Certification and Training
  • Linux Server Diagnostic Commands: Complete Guide for Performance, Network & System Troubleshooting
  • The Ultimate Guide to CDOM โ€“ Certified DataOps Manager Certification

Recent Comments

  1. emmy day on SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘provider’ in ‘field list’
  2. digital banking on Complete Tutorial: Setting Up Laravel Telescope Correctly (Windows + XAMPP + Custom Domain)
  3. SAHIL DHINGRA on How to Uninstall Xampp from your machine when it is not visible in Control panel programs & Feature ?
  4. Abhishek on MySQL: List of Comprehensive List of approach to secure MySQL servers.
  5. Kristina on Best practices to followed in .httacess to avoid DDOS attack?

Archives

  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022

Categories

  • Ai
  • AI Blogging
  • AiOps
  • ajax
  • Android Studio
  • Antimalware
  • Antivirus
  • Apache
  • Api
  • API Security
  • Api Testing
  • APK
  • Aws
  • Bike Rental Services
  • ChatGPT
  • Code Linting
  • Composer
  • cPanel
  • Cyber Threat Intelligence
  • Cybersecurity
  • Data Loss Prevention
  • Database
  • dataops
  • Deception Technology
  • DeepSeek
  • Devops
  • DevSecOps
  • DevTools
  • Digital Asset Management
  • Digital Certificates
  • Docker
  • Drupal
  • emulator
  • Encryption Tools
  • Endpoint Security Tools
  • Error
  • facebook
  • Firewalls
  • Flutter
  • git
  • GITHUB
  • Google Antigravity
  • Google play console
  • Google reCAPTCHA
  • Gradle
  • Guest posting
  • health and fitness
  • IDE
  • Identity and Access Management
  • Incident Response
  • Instagram
  • Intrusion Detection and Prevention Systems
  • jobs
  • Joomla
  • Keycloak
  • Laravel
  • Law News
  • Lawyer Discussion
  • Legal Advice
  • Linkedin
  • Linkedin Api
  • Linux
  • Livewire
  • Mautic
  • Medical Tourism
  • MlOps
  • MobaXterm
  • Mobile Device Management
  • Multi-Factor Authentication
  • MySql
  • Network Traffic Analysis tools
  • Paytm
  • Penetration Testing
  • php
  • PHPMyAdmin
  • Pinterest Api
  • postify
  • Quora
  • SAST
  • SecOps
  • Secure File Transfer Protocol
  • Security Analytics Tools
  • Security Auditing Tools
  • Security Information and Event Management
  • Seo
  • Server Management Tools
  • Single Sign-On
  • Site Reliability Engineering
  • soft 404
  • software
  • SSL
  • SuiteCRM
  • SysOps
  • Threat Model
  • Twitter
  • Twitter Api
  • ubuntu
  • Uncategorized
  • Virtual Host
  • Virtual Private Networks
  • VPNs
  • Vulnerability Assessment Tools
  • Web Application Firewalls
  • Windows Processor
  • Wordpress
  • WSL (Windows Subsystem for Linux)
  • X.com
  • Xampp
  • Youtube
©2026 DevSecOps Now!!! | WordPress Theme: EcoCoded
wpDiscuz