Skip to content

Add containerd Docker storage backend#2584

Merged
limetech merged 1 commit intomasterfrom
codex/add-containerd-as-storage-backend
Mar 24, 2026
Merged

Add containerd Docker storage backend#2584
limetech merged 1 commit intomasterfrom
codex/add-containerd-as-storage-backend

Conversation

@elibosley
Copy link
Copy Markdown
Member

@elibosley elibosley commented Mar 23, 2026

Motivation

  • Provide an alternative Docker image storage backend by adding support for Docker's containerd image store (containerd-snapshotter) as a selectable option in the UI and startup handling.

Description

  • Add containerd as an option in the Docker settings UI by updating emhttp/plugins/dynamix.docker.manager/DockerSettings.page so users can choose it alongside overlay2 and native.
  • Wire the new backend into daemon startup logic in etc/rc.d/rc.docker by selecting --feature containerd-snapshotter=true when DOCKER_BACKINGFS=containerd is configured and preserving existing overlay2/native behavior for other values.
  • Document the new containerd backend in emhttp/languages/en_US/helptext.txt with a short description of what it enables for the Docker data-root.
  • Changed code paths are limited to the three files above and follow the existing configuration and validation patterns.

Testing

  • Ran bash -n etc/rc.d/rc.docker to validate shell syntax and it returned no syntax errors.
  • Ran php -l emhttp/plugins/dynamix.docker.manager/DockerSettings.page to validate PHP syntax and it returned no syntax errors.
  • Verified the UI select and help text strings are updated in the modified DockerSettings.page and helptext.txt files via a local diff check.

Fixes #2583

Summary by CodeRabbit

  • New Features
    • Added containerd as a selectable Docker storage driver option in Docker settings.
    • Enables Docker's containerd-snapshotter image store backend as an alternative to existing overlay2 and native drivers.
    • Updated help documentation to explain the new containerd storage option.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 23, 2026

Walkthrough

This pull request adds support for Docker's containerd image store backend (containerd-snapshotter) as a new storage driver option. Changes span help documentation, the Docker settings UI dropdown, and the runtime Docker configuration logic to handle the new storage driver selection.

Changes

Cohort / File(s) Summary
containerd Storage Driver Support
emhttp/languages/en_US/helptext.txt, emhttp/plugins/dynamix.docker.manager/DockerSettings.page, etc/rc.d/rc.docker
Added containerd as a selectable Docker storage driver option. Updated help text describing the containerd-snapshotter backend, added the option to the UI dropdown menu, and restructured the docker initialization script to handle containerd via a case statement that enables the containerd-snapshotter feature flag, while preserving the existing auto-detection fallback for other configurations.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A whisker-twitched commit hops into view,
Containerd snapshots, shiny and new!
From helptext to dropdowns, the Docker driver springs,
With three little files doing coordinated things! 🐇✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: adding containerd as a Docker storage backend option. It matches the core objective of the PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/add-containerd-as-storage-backend

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

🔧 PR Test Plugin Available

A test plugin has been generated for this PR that includes the modified files.

Version: 2026.03.23.1245
Build: View Workflow Run

📥 Installation Instructions:

Install via Unraid Web UI:

  1. Go to Plugins → Install Plugin
  2. Copy and paste this URL:
https://preview.dl.unraid.net/pr-plugins/pr-2584/webgui-pr-2584.plg
  1. Click Install

Alternative: Direct Download

⚠️ Important Notes:

  • Testing only: This plugin is for testing PR changes
  • Backup included: Original files are automatically backed up
  • Easy removal: Files are restored when plugin is removed
  • Conflicts: Remove this plugin before installing production updates

📝 Modified Files:

Click to expand file list
emhttp/languages/en_US/helptext.txt
emhttp/plugins/dynamix.docker.manager/DockerSettings.page
etc/rc.d/rc.docker

🔄 To Remove:

Navigate to Plugins → Installed Plugins and remove webgui-pr-2584, or run:

plugin remove webgui-pr-2584

🤖 This comment is automatically generated and will be updated with each new push to this PR.

@elibosley elibosley marked this pull request as ready for review March 23, 2026 14:11
@elibosley elibosley marked this pull request as draft March 23, 2026 16:25
@elibosley elibosley requested a review from SimonFair March 23, 2026 17:41
@elibosley elibosley added the 7.3 label Mar 23, 2026
Copy link
Copy Markdown
Contributor

@limetech limetech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@elibosley elibosley marked this pull request as ready for review March 23, 2026 23:50
@limetech limetech merged commit d6361c5 into master Mar 24, 2026
5 checks passed
@limetech limetech deleted the codex/add-containerd-as-storage-backend branch March 24, 2026 05:18
@github-actions
Copy link
Copy Markdown

🧹 PR Test Plugin Cleaned Up

The test plugin and associated files for this PR have been removed from the preview environment.


🤖 This comment is automatically generated when a PR is closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docker: add option to use containerd snapshotters

2 participants