How7o
  • Home
  • Marketing
    MarketingShow More
  • OS
    OSShow More
    How to force quit frozen apps in Ubuntu
    Force Close an App in Ubuntu (xkill, System Monitor, kill -9)
    4 Min Read
  • Features
    FeaturesShow More
  • Guide
    GuideShow More
  • Contact
  • Blog
Reading: Install Docker on AlmaLinux: Step-by-Step (Docker CE + Compose)
Share
Subscribe Now
How7oHow7o
Font ResizerAa
  • Marketing
  • OS
  • Features
  • Guide
  • Complaint
  • Advertise
Search
  • Categories
    • Marketing
    • OS
    • Features
    • Guide
    • Lifestyle
    • Wellness
    • Healthy
    • Nutrition
  • More Foxiz
    • Blog Index
    • Complaint
    • Sitemap
    • Advertise
Follow US
Copyright © 2014-2023 Ruby Theme Ltd. All Rights Reserved.
How7o > Blog > Server Management > Install Docker on AlmaLinux: Step-by-Step (Docker CE + Compose)
Server Management

Install Docker on AlmaLinux: Step-by-Step (Docker CE + Compose)

how7o
By how7o
Last updated: January 12, 2026
4 Min Read
Installing Docker on AlmaLinux guide
SHARE

I had to install Docker on AlmaLinux recently because I was setting up a fresh server for a few self-hosted apps (and later, Discourse). I came from CentOS, so I expected it to be “dnf install docker and done”… but on AlmaLinux (RHEL-family), the clean approach is using Docker’s official repository.

Contents
  • What you need before starting
  • Step 1: Update your AlmaLinux system
  • Step 2: Install the required DNF plugin
  • Step 3: Add Docker’s official repository (recommended)
  • Step 4: Install Docker Engine (plus Compose plugin)
  • Step 5: Start Docker and enable it on boot
  • Step 6: Test Docker (hello-world)
  • Optional: Run Docker without sudo (recommended)
  • Optional: Check Docker Compose
  • Troubleshooting (the common issues)
    • Docker service won’t start
    • Permission denied when running docker (without sudo)
  • Useful links
  • Final thoughts

This guide is the exact process I used—simple, repeatable, and easy to maintain when you upgrade later.

What you need before starting

  • An AlmaLinux server (8/9 works great)
  • A user with sudo privileges
  • Internet access (to pull packages from Docker’s repo)

Step 1: Update your AlmaLinux system

I always update first. It avoids dependency weirdness later.

sudo dnf -y update

Step 2: Install the required DNF plugin

To add external repositories cleanly, you’ll want dnf config-manager, which comes from dnf-plugins-core.

sudo dnf install -y dnf-plugins-core

Step 3: Add Docker’s official repository (recommended)

This is the part most people miss. AlmaLinux doesn’t ship Docker CE in the default repo the way people remember from older CentOS days, so adding Docker’s repo keeps installs and upgrades consistent.

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

Step 4: Install Docker Engine (plus Compose plugin)

For a modern setup, I recommend installing Docker CE plus the Buildx and Compose plugins. That way you can run docker compose without extra hacks.

sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Quick note: if you only want the minimal packages, you can install just docker-ce, docker-ce-cli, and containerd.io (that’s how my original quick answer was written). But for most servers, the plugins are worth it.

Step 5: Start Docker and enable it on boot

sudo systemctl enable --now docker

Confirm Docker is running:

sudo systemctl status docker
docker --version

Step 6: Test Docker (hello-world)

This is my favorite sanity check because it verifies the service and the runtime in one shot.

sudo docker run hello-world

Optional: Run Docker without sudo (recommended)

By default, Docker needs root privileges. If this is your own server and you want convenience, add your user to the docker group.

sudo usermod -aG docker $USER

Then log out and log back in (or reboot). After that, try:

docker run hello-world

Optional: Check Docker Compose

If you installed the Compose plugin, this should work:

docker compose version

Troubleshooting (the common issues)

Docker service won’t start

Check logs first:

sudo journalctl -u docker --no-pager -n 200

Permission denied when running docker (without sudo)

You probably added the user to the docker group but didn’t re-login yet. Re-login or reboot, then try again.

Useful links

  • Docker’s official install guide (RHEL/CentOS-family)
  • How to install Discourse on AlmaLinux (my next step after Docker)

Final thoughts

That’s it. Once you install Docker on AlmaLinux using the official repo, everything becomes easier—upgrades are predictable, Compose works normally, and deploying apps becomes “pull + run” instead of a long dependency mess.

TAGGED:almalinuxContainersDevOpsDNFdockerDocker CEDocker ComposeLinuxvps

Sign Up For Daily Newsletter

Be keep up! Get the latest breaking news delivered straight to your inbox.
By signing up, you agree to our Terms of Use and acknowledge the data practices in our Privacy Policy. You may unsubscribe at any time.
Share This Article
Facebook Copy Link Print
Previous Article Change welcome message on Ubuntu VPS server (MOTD + SSH banner) Change Welcome Message on Ubuntu VPS (MOTD + SSH Banner)
Next Article Installed Discourse on AlmaLinux How I Installed Discourse on AlmaLinux (Docker Method, Step-by-Step)
Leave a Comment

Leave a Reply Cancel reply

You must be logged in to post a comment.

FacebookLike
XFollow
PinterestPin
InstagramFollow

Subscribe Now

Subscribe to our newsletter to get our newest articles instantly!
Most Popular
Find prime numbers in JavaScript thumbnail
How to Find Prime Numbers in JavaScript (1 to 100) — Fast & Simple Methods
February 6, 2026
Dynamically set site title and tagline in WordPress by country
How to Dynamically Set Site Title and Tagline in WordPress (By Country)
February 6, 2026
Capitalize all words in JavaScript with a ucwords-style function
Capitalize All Words in JavaScript (ucwords Equivalent) + First Letter Uppercase
February 6, 2026
CSS page break for printing shown in a print preview layout
CSS Page Break for Printing: How to Split a Web Page Into Multiple Printed Pages
February 6, 2026
get .env variable in Laravel using env and config
How to Get .env Variables in Laravel (Controller + Blade) Safely
February 6, 2026

You Might Also Like

Migrating files from cPanel to aaPanel using rsync
Server Management

cPanel to aaPanel Migration with rsync: Fix Permissions, SSH Port, and CSF Firewall

6 Min Read
How to temporarily disable Imunify360 service for testing (cPanel/WHM)
Server Management

How to Temporarily Disable Imunify360 Service (Safe Testing + Fix 503)

5 Min Read
Transfer Discourse to a new server
Server Management

How to Transfer Discourse to a New Server on AlmaLinux (Backup + Restore, Step-by-Step)

9 Min Read
Check if Laravel scheduler is running (cron + php artisan schedule:run)
Web Development

How to Check if Laravel Scheduler Is Running (Cron + Logs)

6 Min Read

Always Stay Up to Date

Subscribe to our newsletter to get our newest articles instantly!
How7o

We provide tips, tricks, and advice for improving websites and doing better search.

Latest News

  • SEO Audit Tool
  • Client ReferralsNew
  • Execution of SEO
  • Reporting Tool

Resouce

  • Google Search Console
  • Google Keyword Planner
  • Google OptimiseHot
  • SEO Spider

Get the Top 10 in Search!

Looking for a trustworthy service to optimize the company website?
Request a Quote
Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?