How7o
  • Home
  • Tools
  • Prank Screens
  • Learn
  • Blog
  • Contact
Reading: Install Docker on AlmaLinux: Step-by-Step (Docker CE + Compose)
Share
How7oHow7o
Font ResizerAa
  • OS
Search
  • Home
  • Tools
  • Prank Screens
  • Learn
  • Blog
  • Contact
Follow US
© 2024–2026 How7o. All rights reserved.
How7o > Free Laravel, PHP, WordPress & Server Tutorials > 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.
[mc4wp_form]
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
Most Popular
Bun runtime — faster JS toolkit replacing npm in Laravel projects
How to Install Bun Runtime on Ubuntu (And Use It in a Laravel Project)
May 24, 2026
Tailscale mesh — peer-to-peer connections between devices, coordination server
How to Install Tailscale on Ubuntu (Zero-Config Mesh VPN for Self-Hosters)
May 24, 2026
Caddy server — automatic HTTPS, 3-line Caddyfile vs 25-line nginx config
How to Install Caddy Server on Ubuntu (Automatic HTTPS, Drop-in nginx Alternative)
May 24, 2026
Cloudflare Tunnel — outbound-only connection from server, no inbound port forward
How to Install Cloudflare Tunnel on Ubuntu (Expose Local Services, No Port Forwarding)
May 24, 2026
WireGuard encrypted tunnel between server and clients with lock icons
How to Set Up WireGuard VPN on Ubuntu (Server, Linux Client, and iOS)
May 24, 2026

You Might Also Like

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
Nginx redirect www to non-www or vice versa
Server Management

How to Redirect www to non-www (or vice versa) in Nginx

5 Min Read
Laravel .htaccess exclude .well-known for Let's Encrypt ACME challenge
Server Management

How to Exclude .well-known from Redirection for Let’s Encrypt in Laravel

8 Min Read
Safely remove MySQL binary log files to free disk space
Server Management

How to Safely Clean Up MySQL Binary Log Files

5 Min Read
How7o

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

Tools

  • Age Calculator
  • Word Counter
  • Image Upscaler
  • Password Generator
  • QR Code Generator
  • See all tools→

Pranks

  • Fake Blue Screen Prank
  • Hacker Typer
  • Fake iMessage Generator
  • Windows XP Crash Prank
  • Windows 11 Update Prank
  • See all prank screens →

Company

  • About Us
  • Blog
  • Contact
  • Privacy Policy
  • Terms of Service
  • Sitemap
© 2024–2026 How7o. All rights reserved.
Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?