Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • Build your AI Agent
    • GfG 160
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • Contests
    • Accenture Hackathon (Ending Soon!)
    • GfG Weekly [Rated Contest]
    • Job-A-Thon Hiring Challenge
    • All Contests and Events
  • Shell Scripting
  • Kali Linux
  • Ubuntu
  • Red Hat
  • CentOS
  • Docker in Linux
  • Kubernetes in Linux
  • Linux interview question
  • Python
  • R
  • Java
  • C
  • C++
  • JavaScript
  • DSA
Open In App
Next Article:
How to Install Docker on MacOS?
Next article icon

How to Install and Configure Docker in Ubuntu?

Last Updated : 08 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Docker is a platform and service-based product that uses OS-level virtualization to deliver software in packages known as containers. Containers are separated from one another and bundle their software, libraries, and configuration files. Docker is written in the Go language.

Docker can be installed in two versions Docker CE(Community Edition) and Docker EE(Enterprise Edition). For small-scale projects or learning, we can use Docker CE.

Table of Content

  • Operating System Requirements for Docker Installation on Ubuntu
  • Steps for Installing Docker on Ubuntu
  • Executing the Docker Command Without Sudo
  • Using the Docker Commands
  • Working with Docker Images
  • Docker Network
  • How to Commit Changes in a Docker Container?
  • How To Install Docker in Ubuntu – FAQs

Operating System Requirements for Docker Installation on Ubuntu

Before installing Docker on Ubuntu, We have to ensure that the system meets the following requirements:

  • It should have supported versions such as Ubuntu 22.04 (TLS), Ubuntu 20.04 (LTS), Ubuntu 18.04 (LTS)
  • The Architecture of system should be x86_64 (64-bit) or arm64
  • The Linux Kernel Version should be 3.10 or higher. This is necessary for proper Docker functionality. This kernel version provides features such as namespaces and cgroups.

Tip for Optimized Hosting:

Hostinger offers high-performance cloud servers and Linux-based VPS hosting that are ideal for Docker environments. These hosting plans ensure that your infrastructure meets the kernel version and resource requirements needed for smooth Docker operation. With 24/7 support and scalable performance, you can efficiently deploy Docker containers on a server tailored for growth and reliability.

For seamless Docker deployment,

For Example my system configuration are as follows:

configure

Steps for Installing Docker on Ubuntu

The following are the steps that guides you in installing the Docker on Ubuntu:

Step 1: Update Software Repositories using the following command on the terminal.

sudo apt update
sudo-apt-update

Step 2: Install Docker using the following command

sudo apt install docker.io -y
sudo-apt-install

Step 3: Enable and start the docker service by using the following commands.

sudo systemctl enable docker --now

Step 4: Check Docker Version.

docker --version
docker---version

Executing the Docker Command Without Sudo

We will get a permission denied error as a regular user doesn’t have permission to execute docker commands. Know we need to add the the user to the required group.

Step 1: So we need to add an Ubuntu user to the docker group. 

#sudo usermod -aG docker $USER
or
#sudo usermod -aG docker ubuntu
  • The following command helps in knowing whether current add user assigned to docker group or not:
getent group docker
  • Refresh the group permission to use updated one with running following command:
newgrp docker
add-the-user

Step 2: Restart the docker daemon which is already running. After restarting only the changes will comes into effect.

sudo service docker restart

Step 3: Leave the current SSH terminal and re-login with SSH. then carry out.

docker ps
add-the-user

Using the Docker Commands

You need to master the docker commands to work more efficiently in the docker following are the some of the commands which are used in docker on daily bases.

Docker Build Command

After writing the dockerfile know you need to build the dockerfile into the docker image. This is docker image is further used to run the docker containers. Foillowing is the command which is used to build the docker image.

  • Here take sample Dockerfile as below:
Jenkins-Dockerfile
  • Using the following command build the docker image from the Dockerfile:
docker build -t <Name of the Dockerfile> 

Example:

docker build -t myimg:latest . 
buildimage

Docker Run Command

This command is used to run a container from an image. The docker run command is a combination of the docker create and docker start commands. It creates a new container from the image specified and starts that container. if the docker image is not present, then the docker run pulls that.

$ docker run <image_name>
To give name of container
$ docker run --name <container_name> <image_name>

Example:

docker run myimg
  • To Know more docker commands read Docker Commands.
run-docker-run

Working with Docker Images

If you are a Docker developer, you might have noticed that working with multiple Docker Images at the same time might be quite overwhelming sometimes. Managing numerous Docker Images all through a single command line is a very hefty task and consumes a lot of time. In this article, we are going to discuss some important Docker Images commands that would make your life easier. Managing Images with the help of these commands will be very easy and will save you a lot of time.

Following are the some of the docker images which are used on the daily bases.

  • List Docker images: “docker images” this command will list all the docker images which are available in the docker.
  • To Pull Docker Images: “docker pull <Name of the image>” it will pull the required images which are stored in the docker hub registry or repository.

To know more commands which are used to work with docker images refer to the “Working with Docker Images“.

Docker Network Commands

Docker Networking allows you to create a Network of Docker Containers managed by a master node called the manager. Containers inside the Docker Network can talk to each other by sharing packets of information. In this article, we will discuss some basic commands that would help you get started with Docker Networking. To know more about Docker networking refer to the Docker Networking.

  • The following command is used for listing the docker networks:
docker network ls 
docker-network
  • The following command is used for detailing docker network driver:
docker-network-inspect

How to Commit Changes in a Docker Container?

Docker commit command is used to convert the current state of docker container to the docker new image.

First you need to know the ID of the docker container which you want to the docker images after that run the following command.

docker commit <container_id> <new_image_name>

Example of Commit a Docker Container

  • Firstly run a docker container, the following command helps in running ubuntu container:
docker run -dit --name myc1 ubuntu:latest
docker-commit
  • Commit the docker container with using its container name or id:
docker commit myc1 mynewimg
  • Verify whether it successfully created new image or not with listing all the images using the following command:
docker images
dockercommit

Next Article
How to Install Docker on MacOS?
author
itsvinayak
Improve
Article Tags :
  • Docker
  • Linux-Unix
  • docker
  • Spotlight

Similar Reads

  • What is Docker?
    Have you ever wondered about the reason for creating Docker Containers in the market? Before Docker, there was a big issue faced by most developers whenever they created any code that code was working on that developer computer, but when they try to run that particular code on the server, that code
    12 min read
  • Introduction to Docker

    • What is Docker?
      Have you ever wondered about the reason for creating Docker Containers in the market? Before Docker, there was a big issue faced by most developers whenever they created any code that code was working on that developer computer, but when they try to run that particular code on the server, that code
      12 min read

    • Features of Docker
      Pre-requisite: Docker Docker is one of the most popular open-source sets of platforms for developing and automating the deployment of applications. It deploys applications into containers and enables us to separate our applications from infrastructure. It is designed to provide a lightweight and fas
      4 min read

    • Architecture of Docker
      Pre-requisite: Docker Docker makes use of a client-server architecture. The Docker client talks with the docker daemon which helps in building, running, and distributing the docker containers. The Docker client runs with the daemon on the same system or we can connect the Docker client with the Dock
      4 min read

    • What is Docker Hub?
      Docker Hub is a repository service and it is a cloud-based service where people push their Docker Container Images and also pull the Docker Container Images from the Docker Hub anytime or anywhere via the internet. It provides features such as you can push your images as private or public. Mainly De
      13 min read

    • What is Docker Cloud?
      Docker is a software platform that provides some special kind of facilities, like a service provider that allows you to build, test, and deploy your application in centralized processing and quickly. So, the Docker Cloud is basically working as a service provider by Docker in which we can perform su
      10 min read

    Docker Installation

    • Docker - Installation on Windows
      In this article, we are going to see how to install Docker on Windows. On windows if you are not using operating system Windows 10 Pro then you will have to install our docker toolbox and here docker will be running inside a virtual machine and then we will interact with docker with a docker client
      2 min read

    • How to Install Docker using Chocolatey on Windows?
      Installing Docker in Windows with just the CLI is quite easier than you would expect. It just requires a few commands. This article assumes you have chocolatey installed on your respective windows machine. If not, you can install chocolatey from here. Chocolatey is a package manager for the Windows
      4 min read

    • How to Install and Configure Docker in Ubuntu?
      Docker is a platform and service-based product that uses OS-level virtualization to deliver software in packages known as containers. Containers are separated from one another and bundle their software, libraries, and configuration files. Docker is written in the Go language. Docker can be installed
      6 min read

    • How to Install Docker on MacOS?
      Pre-requisites: Docker-Desktop Docker Desktop is a native desktop application for Windows and Mac's users created by Docker. It is the most convenient way to launch, build, debug, and test containerized apps. Docker Desktop includes significant and helpful features such as quick edit-test cycles, fi
      2 min read

    • How to install and configure Docker on Arch-based Linux Distributions(Manjaro) ?
      In this article, we are going to see how to install and configure Docker on Arch-based Linux Distributions. Docker is an open-source containerization platform used for building, running, and managing applications in an isolated environment. A container is isolated from another and bundles its softwa
      2 min read

    • How to Install Docker-CE in Redhat 8?
      Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all the parts it needs, such as libraries and other dependencies, and deploy it as one package. Installing Docker-CE in Redhat 8: St
      2 min read

    Docker Commands

    • Docker Commands
      Docker is an open-source project that automates the deployment of applications as movable, independent containers that can run locally or in the cloud. You can divide your applications from your infrastructure with the help of Docker, allowing for quick software delivery and it also allows you to ma
      7 min read

    • Running Commands Inside Docker Container
      If you are working on an application inside the Docker Container, you might need commands to install packages or access file system inside the Docker Container. Executing commands inside Docker Containers should be easy enough for you since you have to do it multiple times across your development ph
      6 min read

    • Docker - USER Instruction
      By default, a Docker Container runs as a Root user. This poses a great security threat if you deploy your applications on a large scale inside Docker Containers. You can change or switch to a different user inside a Docker Container using the USER Instruction. For this, you first need to create a us
      2 min read

    Docker Images

    • What is Docker Image?
      Docker Image is an executable package of software that includes everything needed to run an application. This image informs how a container should instantiate, determining which software components will run and how. Docker Container is a virtual environment that bundles application code with all the
      10 min read

    • Working with Docker Images
      If you are a Docker developer, you might have noticed that working with multiple Docker Images at the same time might be quite overwhelming sometimes. Managing numerous Docker Images all through a single command line is a very hefty task and consumes a lot of time. In this article, we are going to d
      2 min read

    • Docker - Publishing Images to Docker Hub
      Docker is a container platform that facilitates creating and managing containers. In this article, we will see how docker stores the docker images in some popular registries like Dockerhub and how to publish the Docker images to Docker Hub. By publishing the images to the docker hub and making it pu
      8 min read

    • Docker Commit
      Docker is an open-source container management service and one of the most popular tools of DevOps which is being popular among the deployment team. Docker is mostly used in Agile-based projects which require continuous delivery of the software. The founder, Chief Technical Officer, and Chief Archite
      10 min read

    • Docker - Using Image Tags
      Image tags are used to describe an image using simple labels and aliases. Tags can be the version of the project, features of the Image, or simply your name, pretty much anything that can describe the Image. It helps you manage the project's version and lets you keep track of the overall development
      7 min read

    • Next.js Docker Images
      Using Next.js Docker images allows your app to deploy to multiple environments, and is more portable, isolated and scalable in dev and prod. Docker’s containerization makes app management super easy, you can move from one stage to another with performance. Before we get started, let’s cover the basi
      14 min read

    • How to Use Local Docker Images With Minikube?
      Minikube is a software that helps in the quick setup of a single-node Kubernetes cluster. It supports a Virtual Machine (VM) that runs over a docker container and creates a Kubernetes environment. Now minikube itself acts as an isolated container environment apart from the local docker environment,
      7 min read

    Docker Containers

    • Containerization using Docker
      Docker is the containerization platform that is used to package your application and all its dependencies together in the form of containers to make sure that your application works seamlessly in any environment which can be developed or tested or in production. Docker is a tool designed to make it
      9 min read

    • Virtualisation with Docker Containers
      In a software-driven world where omnipresence and ease of deployment with minimum overheads are the major requirements, the cloud promptly takes its place in every picture. Containers are creating their mark in this vast expanse of cloud space with the world’s top technology and IT establishments re
      9 min read

    • Docker - Docker Container for Node.js
      Node.js is an open-source, asynchronous event-driven JavaScript runtime that is used to run JavaScript applications. It is widely used for traditional websites and as API servers. At the same time, a Docker container is an isolated, deployable unit that packages an application along with its depende
      12 min read

    • Docker - Remove All Containers and Images
      In Docker, if we have exited a container without stopping it, we need to manually stop it as it has not stopped on exit. Similarly, for images, we need to delete them from top to bottom as some containers or images might be dependent on the base images. We can download the base image at any time. So
      10 min read

    • How to Push a Container Image to a Docker Repository?
      In this article we will look into how you can push a container image to a Docker Repo. We're going to use Docker Hub as a container registry, that we're going to push our Docker image to. Follow the below steps to push container Image to Docker repository: Step 1: The first thing you need to do is m
      2 min read

    • Docker - Container Linking
      Docker is a set of platforms as a service (PaaS) products that use the Operating system level visualization to deliver software in packages called containers.There are times during the development of our application when we need two containers to be able to communicate with each other. It might be p
      4 min read

    • How to Manage Docker Containers?
      Before virtualization, the management of web servers and web applications was tedious and much less effective. Thanks to virtualization, this task has been made much easier. This was followed by containerization which took it a notch higher. For network engineers, learning the basics of virtualizati
      13 min read

    • Mounting a Volume Inside Docker Container
      When you are working on a micro-service architecture using Docker containers, you create multiple Docker containers to create and test different components of your application. Now, some of those components might require sharing files and directories. If you copy the same files in all the containers
      10 min read

    • Difference between Docker Image and Container
      Pre-requisite: Docker Docker builds images and runs containers by using the docker engine on the host machine. Docker containers consist of all the dependencies and software needed to run an application in different environments. What is Docker Image?The concept of Image and Container is like class
      5 min read

    • Difference between Virtual Machines and Containers
      Virtual machines and Containers are two ways of deploying multiple, isolated services on a single platform. Virtual Machine:It runs on top of an emulating software called the hypervisor which sits between the hardware and the virtual machine. The hypervisor is the key to enabling virtualization. It
      2 min read

    • How to Install Linux Packages Inside a Docker Container?
      Once you understand how to pull base Docker Images from the Docker registry, you can now simply pull OS distributions such as Ubuntu, CentOS, etc directly from the Docker hub. However, the OS Image that you have pulled simply contains a raw file system without any packages installed inside it. When
      2 min read

    • Copying Files to and from Docker Containers
      While working on a Docker project, you might require copying files to and from Docker Containers and your Local Machine. Once you have built the Docker Image with a particular Docker build context, building it again and again just to add small files or folders inside the Container might be expensive
      9 min read

    • How to Run MongoDB as a Docker Container?
      MongoDB is an open-source document-oriented database designed to store a large scale of data and allows you to work with that data very efficiently. It is categorized under the NoSQL (Not only SQL) database because the storage and retrieval of data in MongoDB are not in the form of tables.  In this
      4 min read

    • Docker - Docker Container for Node.js
      Node.js is an open-source, asynchronous event-driven JavaScript runtime that is used to run JavaScript applications. It is widely used for traditional websites and as API servers. At the same time, a Docker container is an isolated, deployable unit that packages an application along with its depende
      12 min read

    • Docker - Container for NGINX
      Docker is an open-source platform that enables developers to easily develop, ship, and run applications. It packages an application along with its dependencies in an isolated virtual container which usually runs on a Linux system and is quite light compared to a virtual machine. The reason is that a
      11 min read

    • How to Provide the Static IP to a Docker Container?
      Docker is an open-source project that makes it easier to create, deploy and run applications. It provides a lightweight environment to run your applications.It is a tool that makes an isolated environment inside your computer. Think of Docker as your private room in your house. Living with your fami
      2 min read

    Docker Compose

    • Docker Compose
      An open-source platform called Docker makes designing, shipping, and deploying applications simple. It runs an application in an isolated environment by compiling its dependencies into a so-called container. for additional information on Docker. In a normal case, several services, such as a database
      15+ min read

    • Docker Compose Tool To Run aMulti Container Applications
      The article talks about how to run multi-container applications using a single command. Docker Compose is a tool for defining and running multi-container Docker applications. With Compose, you can configure a file (YAML file) to configure your docker containers. Then Once you configured the Yaml fil
      8 min read

    Docker Swarm

    • Docker Swarm Mode
      Docker swarm is a container orchestration tool. Swarm Mode in Docker was introduced in version 1.12, enabling the ability to deploy multiple containers on multiple Docker hosts. For this Docker uses an overlay network for the service discovery and with a built-in load balancer for scaling the servic
      14 min read

    • Docker Swarm vs Kubernetes
      Containers are brilliant at packaging and holding all application codes, dependencies, libraries, and necessary configurations in a way that you can run them anywhere easily. But the problem arises from the fact that containers themselves cannot do things like load balancing, provisioning hosts, dis
      10 min read

    Docker Networking

    • Docker Networking
      Pre-requisite: Docker Docker Networking allows you to create a Network of Docker Containers managed by a master node called the manager. Containers inside the Docker Network can talk to each other by sharing packets of information. In this article, we will discuss some basic commands that would help
      5 min read

    • Docker - Managing Ports
      Pre-requisites: Docker Docker is a set of platform-as-a-service products that use OS-level virtualization to deliver software in packages called containers. These containers may need to talk to each other or to services outside docker, for this we not only need to run the image but also expose the c
      4 min read

    • Creating a Network in Docker and Connecting a Container to That Network
      Networks are created so that the devices which are inside that network can connect to each other and transfer of files can take place. In docker also we can create a network and can create a container and connect to the respective network and two containers that are connected to the same network can
      2 min read

    • Connecting Two Docker Containers Over the Same Network
      Whenever we expose a container's port in docker, it creates a network path from the outside of that machine, through the networking layer, and enters that container. In this way, other containers can connect to it by going out to the host, turning around, and coming back in along that path.Docker of
      3 min read

    • How to use Docker Default Bridge Networking?
      Docker allows you to create dedicated channels between multiple Docker Containers to create a network of Containers that can share files and other resources. This is called Docker Networking. You can create Docker Networks with various kinds of Network Drivers which include Bridge drivers, McVLAN dr
      7 min read

    • Create your own secure Home Network using Pi-hole and Docker
      Pi-hole is a Linux based web application, which is used as a shield from the unwanted advertisement in your network and also block the internet tracking system. This is very simple to use and best for home and small office networks. This is totally free and open-source. It also allows you to manage
      3 min read

    Docker Registry

    • What is Docker Registry?
      Docker Registry is a centralized storage and distributed system for collecting and managing the docker images. It provides both public and private repositories as per the choice whether to make the image accessible publicly or not. It is an essential component in the containerization workflow for st
      10 min read

    • Docker - Using Public Repositories To Host Docker Images
      Docker is a software platform for creating isolated virtualized environments for building, deploying, and testing applications with ease. In this tutorial, we will learn how to host public repositories on docker hub which is a hosted repository service provided by Docker for finding and sharing cont
      10 min read

    • Docker - Private Registries
      Pre-requisites: Docker, Docker HUB Docker registry is your own private repository where you can store your own Docker images and share them with others. Docker Registry is basically organized into Docker Repositories. Within the docker Repository, you can maintain specific versions of a Docker Image
      3 min read

    • Creating a Private Repository and Push an Image to That Private Repository
      In this article, we show how to create a docker hub account and pull the image from the docker hub repository and push our image to the docker hub repository. As the docker hub is a public repository that can be accessed by anyone so one can create their own private repository to which they can push
      2 min read

    • Docker - Using Public Repositories To Host Docker Images
      Docker is a software platform for creating isolated virtualized environments for building, deploying, and testing applications with ease. In this tutorial, we will learn how to host public repositories on docker hub which is a hosted repository service provided by Docker for finding and sharing cont
      10 min read

geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences