<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://serverrental.store/index.php?action=history&amp;feed=atom&amp;title=Installing_Docker_on_Linux</id>
	<title>Installing Docker on Linux - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://serverrental.store/index.php?action=history&amp;feed=atom&amp;title=Installing_Docker_on_Linux"/>
	<link rel="alternate" type="text/html" href="https://serverrental.store/index.php?title=Installing_Docker_on_Linux&amp;action=history"/>
	<updated>2026-04-15T15:06:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://serverrental.store/index.php?title=Installing_Docker_on_Linux&amp;diff=5743&amp;oldid=prev</id>
		<title>Admin: New server guide</title>
		<link rel="alternate" type="text/html" href="https://serverrental.store/index.php?title=Installing_Docker_on_Linux&amp;diff=5743&amp;oldid=prev"/>
		<updated>2026-04-12T15:57:51Z</updated>

		<summary type="html">&lt;p&gt;New server guide&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Installing Docker on Linux =&lt;br /&gt;
&lt;br /&gt;
This guide provides step-by-step instructions for installing Docker Community Edition (CE) on various Linux distributions and introduces fundamental Docker commands and concepts, including creating a simple Dockerfile. This is an essential skill for modern application deployment and management, especially when leveraging the power of dedicated servers from [https://powervps.net/?from=32 PowerVPS] for your containerized workloads.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before you begin, ensure you have:&lt;br /&gt;
# A Linux server with root or sudo privileges. [[Dedicated Servers]] from PowerVPS offer excellent performance and full root access, ideal for running Docker.&lt;br /&gt;
# A stable internet connection to download packages.&lt;br /&gt;
# Basic familiarity with the Linux command line.&lt;br /&gt;
# For this guide, we will cover installation on Debian/Ubuntu and CentOS/RHEL-based systems.&lt;br /&gt;
&lt;br /&gt;
== Installing Docker CE ==&lt;br /&gt;
&lt;br /&gt;
Docker CE can be installed using the official repositories. This is the recommended method as it ensures you receive timely updates.&lt;br /&gt;
&lt;br /&gt;
=== On Debian/Ubuntu ===&lt;br /&gt;
# '''Update package lists:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Install prerequisite packages:''' These allow apt to use a repository over HTTPS.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Add Docker's official GPG key:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Set up the stable Docker repository:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo \&lt;br /&gt;
  &amp;quot;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \&lt;br /&gt;
  $(lsb_release -cs) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Update package lists again to include the new repository:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Install Docker Engine, containerd, and Docker Compose:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Verify the installation:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo docker run hello-world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should see a message indicating that your installation appears to be working correctly.&lt;br /&gt;
&lt;br /&gt;
=== On CentOS/RHEL/Fedora ===&lt;br /&gt;
# '''Uninstall older versions (if any):'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine podman runc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Install required packages:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo yum install -y yum-utils device-mapper-persistent-data lvm2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Add Docker's stable repository:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Install Docker Engine, containerd, and Docker Compose:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Start the Docker daemon:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl start docker&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Enable Docker to start on boot:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable docker&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Verify the installation:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo docker run hello-world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Similar to Debian/Ubuntu, you should see a confirmation message.&lt;br /&gt;
&lt;br /&gt;
== Post-installation Steps ==&lt;br /&gt;
&lt;br /&gt;
=== Manage Docker as a non-root user ===&lt;br /&gt;
To run Docker commands without `sudo`, add your user to the `docker` group.&lt;br /&gt;
# '''Add user to the docker group:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo usermod -aG docker $USER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Apply the group changes:''' You will need to log out and log back in, or run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
newgrp docker&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you can run Docker commands directly:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker run hello-world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Basic Docker Commands ===&lt;br /&gt;
Here are some fundamental Docker commands to get you started:&lt;br /&gt;
&lt;br /&gt;
* '''`docker --version`''': Displays the installed Docker version.&lt;br /&gt;
* '''`docker info`''': Provides detailed information about your Docker installation, including the number of containers, images, and storage driver.&lt;br /&gt;
* '''`docker pull &amp;lt;image_name&amp;gt;`''': Downloads a Docker image from a registry (like Docker Hub).&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    docker pull ubuntu:latest&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''`docker images`''': Lists all Docker images available locally.&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    docker images&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''`docker run &amp;lt;image_name&amp;gt;`''': Creates and starts a new container from an image.&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    docker run -it ubuntu bash&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
    The `-it` flags allocate a pseudo-TTY and keep STDIN open, allowing you to interact with the container.&lt;br /&gt;
* '''`docker ps`''': Lists all running containers.&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    docker ps&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''`docker ps -a`''': Lists all containers, including stopped ones.&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    docker ps -a&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''`docker stop &amp;lt;container_id_or_name&amp;gt;`''': Stops a running container.&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    docker stop my_running_container&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''`docker rm &amp;lt;container_id_or_name&amp;gt;`''': Removes a stopped container.&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    docker rm my_stopped_container&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''`docker rmi &amp;lt;image_id_or_name&amp;gt;`''': Removes a Docker image.&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    docker rmi ubuntu:latest&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating a Dockerfile ==&lt;br /&gt;
&lt;br /&gt;
A Dockerfile is a script that contains instructions for building a Docker image. It's the blueprint for your containerized application.&lt;br /&gt;
&lt;br /&gt;
Let's create a simple Dockerfile for a basic Nginx web server.&lt;br /&gt;
&lt;br /&gt;
# '''Create a directory for your project:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir my-nginx-app&lt;br /&gt;
cd my-nginx-app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Create a simple HTML file to serve:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;&amp;lt;h1&amp;gt;Hello from my Dockerized Nginx!&amp;lt;/h1&amp;gt;&amp;quot; &amp;gt; index.html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Create the Dockerfile:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano Dockerfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Add the following content to the Dockerfile:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Use an official Nginx runtime as a parent image&lt;br /&gt;
FROM nginx:latest&lt;br /&gt;
&lt;br /&gt;
# Copy the current directory contents into the container at /usr/share/nginx/html&lt;br /&gt;
COPY . /usr/share/nginx/html&lt;br /&gt;
&lt;br /&gt;
# Expose port 80 to the outside world&lt;br /&gt;
EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
# Command to run when the container launches&lt;br /&gt;
CMD [&amp;quot;nginx&amp;quot;, &amp;quot;-g&amp;quot;, &amp;quot;daemon off;&amp;quot;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
# '''Build the Docker image:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker build -t my-nginx-image .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The `.` at the end specifies the build context (the current directory).&lt;br /&gt;
# '''Run a container from your new image:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker run -d -p 8080:80 my-nginx-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The `-d` flag runs the container in detached mode. `-p 8080:80` maps port 8080 on your host to port 80 inside the container.&lt;br /&gt;
# '''Verify by accessing your web server:''' Open a web browser and navigate to `http://your_server_ip:8080`. You should see &amp;quot;Hello from my Dockerized Nginx!&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* '''Docker daemon not running:'''&lt;br /&gt;
    * Check status: `sudo systemctl status docker`&lt;br /&gt;
    * Start daemon: `sudo systemctl start docker`&lt;br /&gt;
    * Enable on boot: `sudo systemctl enable docker`&lt;br /&gt;
* '''Permission denied when running Docker commands:'''&lt;br /&gt;
    * Ensure your user is in the `docker` group: `sudo usermod -aG docker $USER`&lt;br /&gt;
    * Log out and log back in, or use `newgrp docker`.&lt;br /&gt;
* '''`hello-world` container fails to run:'''&lt;br /&gt;
    * Check network connectivity: Can you reach `https://registry-1.docker.io`?&lt;br /&gt;
    * Ensure Docker is installed correctly and the daemon is running.&lt;br /&gt;
* '''Port conflicts:''' If you cannot map a host port (e.g., `-p 8080:80`), another service might be using that port. Try a different host port (e.g., `-p 8081:80`). You can check port usage with `sudo netstat -tulnp | grep :8080`.&lt;br /&gt;
&lt;br /&gt;
== Further Reading ==&lt;br /&gt;
* [[Docker Compose Installation]]&lt;br /&gt;
* [[Kubernetes Basics]]&lt;br /&gt;
* [[Container Orchestration]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Containerization]]&lt;br /&gt;
[[Category:Docker]]&lt;br /&gt;
[[Category:System Administration]]&lt;br /&gt;
&lt;br /&gt;
{{Exchange Box}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>