Skip to Content

Changing runtime Container from Docker to Podman in CEPH

March 19, 2026 by
Tinihub Inc.

We are doing here for Ubuntu

  1. Install podman on all nodes

    1. apt install podman -y

2. Put host in maintenance one by one

​ceph orch host maintenance <host>

3. stop docker services 

​systemctl stop docker docker.socket

4. Use below script to change the run time for all services

#!/bin/bash
# Emergency fix for Ceph Docker -> Podman transition
# This script targets the 1760c18a-b5ee-11f0-bfab-3fc18abc7370 cluster ID

CEPH_PATH="/var/lib/ceph/1760c18a-b5ee-11f0-bfab-3fc18abc7370"
SYSTEMD_UNIT="/etc/systemd/system/ceph-1760c18a-b5ee-11f0-bfab-3fc18abc7370@.service"

echo "[*] Step 1: Replacing Docker with Podman in all unit.run files..."
# We skip the 'removed' directory to avoid unnecessary work
find "$CEPH_PATH" -name "unit.run" -not -path "*/removed/*" -exec sed -i 's|/usr/bin/docker|/usr/bin/podman|g' {} +
find "$CEPH_PATH" -name "unit.run" -not -path "*/removed/*" -exec sed -i 's|docker |podman |g' {} +

echo "[*] Step 2: Patching the systemd unit file dependencies..."
if [ -f "$SYSTEMD_UNIT" ]; then
    # Comment out Docker dependencies
    sed -i 's/^After=docker.service/#After=docker.service/' "$SYSTEMD_UNIT"
    sed -i 's/^Wants=docker.service/#Wants=docker.service/' "$SYSTEMD_UNIT"
    
    # Add Podman as a soft dependency (optional but cleaner)
    if ! grep -q "After=podman.service" "$SYSTEMD_UNIT"; then
        sed -i '/\[Unit\]/a After=podman.service' "$SYSTEMD_UNIT"
    fi
fi

echo "[*] Step 3: Reloading systemd daemon..."
systemctl daemon-reload

echo "[*] Step 4: Restarting Ceph services in priority order..."
# Start MON and MGR first to restore the cluster "brain"
systemctl restart "ceph-1760c18a-b5ee-11f0-bfab-3fc18abc7370@mon.openceph-20-02.service"
systemctl restart "ceph-1760c18a-b5ee-11f0-bfab-3fc18abc7370@mgr.openceph-20-02.jwfdls.service"

# Give the MON a second to find quorum
sleep 3

# Restart the rest (OSDs, Prometheus, etc.)
systemctl restart "ceph-1760c18a-b5ee-11f0-bfab-3fc18abc7370.target"

echo "[*] Step 5: Verifying Podman containers..."
podman ps

echo "==== ✅ Patch complete. Try running 'ceph -s' now. ===="

5. Join host back, 

ceph orch host maintenance exit <hostname>

6. Check Ceph Status 

ceph -s 

7. Keep doing it for rest of your nodes... 


Tinihub Inc. March 19, 2026
Share this post
Tags
Archive
High Performance Storage
Lustre