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.
Set up the admin account by following the on-screen prompts.
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