How to Install Docker and Portainer on CentOS Stream 10

Portainer is a lightweight, open-source management tool for Docker, providing an easy-to-use graphical interface for managing containers, images, and volumes. It is ideal for both small-scale and large-scale Docker deployments.

Prerequisites

Before installing Portainer, ensure the following:

  • CentOS Stream 10 server is running.
  • Access to the internet for downloading Docker and Portainer.

Update the System

Ensure your system is up-to-date by running the following command:

dnf update -y

Output:

[root@vps ~]# dnf update -y
CentOS Stream 10 - BaseOS                       3.7 MB/s | 6.6 MB     00:01
CentOS Stream 10 - AppStream                    2.9 MB/s | 3.1 MB     00:01
CentOS Stream 10 - Extras packages              7.6 kB/s | 3.8 kB     00:00
Dependencies resolved.
================================================================================
 Package                      Arch   Version                    Repo       Size
================================================================================
Installing:
 kernel                       x86_64 6.12.0-56.el10             baseos    6.1 k
Upgrading:
 NetworkManager               x86_64 1:1.51.90-2.el10           baseos    2.2 M
 NetworkManager-libnm         x86_64 1:1.51.90-2.el10           baseos    1.9 M
 NetworkManager-tui           x86_64 1:1.51.90-2.el10           baseos    231 k
 amd-gpu-firmware             noarch 20250212-14.el10           appstream  27 M
 amd-ucode-firmware           noarch 20250212-14.el10           baseos    307 k
 atheros-firmware             noarch 20250212-14.el10           baseos     37 M
 bash                         x86_64 5.2.26-6.el10              baseos    1.8 M
 binutils                     x86_64 2.41-52.el10               baseos    6.2 M
 binutils-gold                x86_64 2.41-52.el10               baseos    737 k
 brcmfmac-firmware            noarch 20250212-14.el10           baseos    9.6 M
 centos-gpg-keys              noarch 10.0-7.el10                baseos     14 k
 centos-stream-release        noarch 10.0-7.el10                baseos     29 k
 centos-stream-repos          noarch 10.0-7.el10                baseos     12 k
 cirrus-audio-firmware        noarch 20250212-14.el10           baseos    1.7 M
 crypto-policies              noarch 20250214-1.gitfd9b9b9.el10 baseos     98 k
 crypto-policies-scripts      noarch 20250214-1.gitfd9b9b9.el10 baseos    129 k
 dbus-broker                  x86_64 36-1.el10                  baseos    168 k
 dnf                          noarch 4.20.0-11.el10             baseos    478 k
 dnf-data                     noarch 4.20.0-11.el10             baseos     42 k
 dracut                       x86_64 105-3.el10                 baseos    528 k

Install Docker

Portainer requires Docker to be installed. If Docker is not already installed, follow these steps:

Add Docker’s Official Repository

dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Output:

[root@vps ~]# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo

Install Docker Run the following commands to enable the official Docker repository:

dnf install -y dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Output:

[root@vps ~]# dnf install -y dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Docker CE Stable - x86_64                        13 kB/s | 5.7 kB     00:00
Package dnf-plugins-core-4.7.0-8.el10.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo

Verify the repository is added:

dnf repolist | grep docker

Output:

[root@vps ~]# sudo dnf repolist | grep docker
docker-ce-stable               Docker CE Stable - x86_64

Now, install Docker and its dependencies:

dnf install -y docker-ce docker-ce-cli containerd.io

Output:

[root@vps ~]# dnf install -y docker-ce docker-ce-cli containerd.io
Docker CE Stable - x86_64                        41 kB/s | 5.7 kB     00:00
Last metadata expiration check: 0:00:01 ago on Thu 27 Feb 2025 08:19:07 PM UTC.
Dependencies resolved.
================================================================================
 Package                    Arch    Version             Repository         Size
================================================================================
Installing:
 containerd.io              x86_64  1.7.25-3.1.el10     docker-ce-stable   43 M
 docker-ce                  x86_64  3:28.0.1-1.el10     docker-ce-stable   20 M
 docker-ce-cli              x86_64  1:28.0.1-1.el10     docker-ce-stable  8.3 M
Installing dependencies:
 container-selinux          noarch  3:2.234.2-4.el10    appstream          62 k
 fuse-common                x86_64  3.16.2-5.el10       baseos            9.7 k
 fuse-overlayfs             x86_64  1.14-2.el10         appstream          67 k
 fuse3                      x86_64  3.16.2-5.el10       baseos             59 k
 libslirp                   x86_64  4.7.0-10.el10       appstream          75 k
 slirp4netns                x86_64  1.3.2-1.el10        appstream          47 k
 tar                        x86_64  2:1.35-7.el10       baseos            863 k
Installing weak dependencies:
 docker-buildx-plugin       x86_64  0.21.1-1.el10       docker-ce-stable   16 M
 docker-ce-rootless-extras  x86_64  28.0.1-1.el10       docker-ce-stable  3.2 M
 docker-compose-plugin      x86_64  2.33.1-1.el10       docker-ce-stable   15 M

Transaction Summary
================================================================================
Install  13 Packages

Total download size: 107 M
Installed size: 425 M
Downloading Packages:
(1/13): fuse-common-3.16.2-5.el10.x86_64.rpm     70 kB/s | 9.7 kB     00:00
(2/13): fuse3-3.16.2-5.el10.x86_64.rpm          231 kB/s |  59 kB     00:00
(3/13): container-selinux-2.234.2-4.el10.noarch 265 kB/s |  62 kB     00:00

Start and Enable Docker

systemctl start docker
systemctl enable docker

Check Docker Status

systemctl status docker

Output:

[root@vps ~]# systemctl enable --now docker
Created symlink '/etc/systemd/system/multi-user.target.wants/docker.service' → '/usr/lib/systemd/system/docker.service'.
[root@vps ~]# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: d>
     Active: active (running) since Thu 2025-02-27 20:23:26 UTC; 6s ago
 Invocation: a122104389a2454ebecd9159f9ece8a3
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 25655 (dockerd)
      Tasks: 10
     Memory: 21.2M (peak: 24.8M)
        CPU: 284ms
     CGroup: /system.slice/docker.service
             └─25655 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/con>

Ensure that Docker is active and running.

Install Portainer

Once Docker is installed and running, you can proceed to install Portainer.

Create a Docker Volume for Portainer

docker volume create portainer_data

Output:

[root@vps ~]# docker volume create portainer_data
portainer_data

Download and Run the Portainer Container

docker run -d -p 8000:8000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Output:

[root@vps ~]# docker run -d -p 8000:8000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Unable to find image 'portainer/portainer-ce:latest' locally
latest: Pulling from portainer/portainer-ce
436768c74267: Pull complete
d61825c69234: Pull complete
04de093ad5ed: Pull complete
a528983d077c: Pull complete
26eb502a78ed: Pull complete
b2724536dfda: Pull complete
5b45cfb2ea0c: Pull complete
20b115ea6339: Pull complete
8e73efb50b28: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:99c3047d44991af08f2a34df16e69ae2654bee43444b2e9857aa6b5864c4f602
Status: Downloaded newer image for portainer/portainer-ce:latest
1d6340a72a467d3aefb40d2e43dab9bfbb773662efb3d5aa0646ca7931483db2

This command pulls the latest Portainer CE image and starts the Portainer container.

Access Portainer Web UI

Open a web browser and navigate to:

http://your-server-ip:9443

Note: Replace your-server-ip with the actual IP address of your server.

image

Set up the admin account by following the on-screen prompts.

image

Conclusion

This guide provides a simple step-by-step approach for installing Docker and Portainer on CentOS Stream 10. After installation, you can access and manage your Docker containers, images, and volumes through the Portainer web interface.


CrownCloud - Get a SSD powered KVM VPS at $4.5/month!
Use the code WELCOME for 10% off!

1 GB RAM / 25 GB SSD / 1 CPU Core / 1 TB Bandwidth per month

Available Locations: LAX | MIA | ATL | FRA | AMS