Skip to content

Conversation

@stasadev
Copy link
Member

@stasadev stasadev commented Nov 22, 2025

The Issue

How This PR Solves The Issue

Adds a blog.

Manual Testing Instructions

https://pr-476.ddev-com-fork-previews.pages.dev/blog/podman-and-docker-rootless/

Automated Testing Overview

Related Issue Link(s)

Release/Deployment Notes

@github-actions
Copy link

github-actions bot commented Nov 22, 2025

🌐 Fork Preview for PR #476

https://pr-476.ddev-com-fork-previews.pages.dev

This preview updates automatically when you push changes to your fork.

@rfay
Copy link
Member

rfay commented Nov 23, 2025

Just starting on this... Since this will come out before v1.25.0, it should mention the v1.25.0 or HEAD requirement to test, right?

Copy link
Member

@rfay rfay left a comment

Choose a reason for hiding this comment

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

Here's my first visit. Congrats on this milestone.

As mentioned, this should probably discourage people from using these options unless they know they need them. Early on it should have a link to normal setup and say "You don't need this unless you think you want it :) "

Now I'll experiment with the various options.

- [Mounting a volume with rootless always assigns ownership to root](https://github.com/moby/moby/issues/45919)
- [Add ability to mount volume as user other than root](https://github.com/moby/moby/issues/2259)

The `root` user inside the container maps to your host user, but many services will not run as root:
Copy link
Member

Choose a reason for hiding this comment

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

It's interesting that this is the same classic problem we've had with Docker Desktop for Linux and for a time with virtiofs.

Copy link
Member

@rfay rfay left a comment

Choose a reason for hiding this comment

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

Another comment: One reason people have often requested podman is the belief that it was the only open-source alternative to Docker Desktop. We should clear that up in here, pointing out the there are several other fully open source alternatives on every platform.

@rfay
Copy link
Member

rfay commented Nov 25, 2025

This and docs probably need a compatibility table showing all the options and what works etc.

@rfay
Copy link
Member

rfay commented Nov 26, 2025

I'm not sure if you already have this in there, but the inability to bind to default ports 80/443 is a pretty significant liability for a web developer.

@tyler36
Copy link
Contributor

tyler36 commented Nov 26, 2025

Just tried installing rootless podman in a isolated WSL Ubuntu environment:

I got a warning "Problem with your Docker provider: installed Podman version 4.9.3 is not supported, please update to version 5.0 or newer."

But it seem Ubuntu old has older versions available(?)

$ sudo nala search podman
...
podman 4.9.3+ds1-1ubuntu0.2 [Ubuntu/noble universe]
└── tool to manage containers and pods

Install Podman Desktop on windows got a "current" version though:

❯ podman -v
podman version 5.7.0

@stasadev stasadev force-pushed the 20251122_stasadev_podman branch 2 times, most recently from 4dd642a to ae5ec1b Compare December 9, 2025 19:05
@stasadev
Copy link
Member Author

stasadev commented Dec 9, 2025

Summary of Changes from Original Version

  • Added release status clarity: now explicitly states support is in DDEV HEAD with GA planned for v1.25.0.
  • Added full platform separation: Linux/WSL2, macOS, and Windows now have dedicated sections.
  • Added Open Source alternatives to Docker Desktop (Rancher, Lima, Colima, etc).
  • Improved rootless security explanation by distinguishing container user vs daemon privileges.
  • Moved subuid/subgid setup into the main Podman Rootless configuration flow (more correct).
  • Added Docker Rootless loopback/Xdebug fix using RootlessKit environment override.
  • Added a full runtime comparison table with features and recommendations.

Content that was shortened or removed

  • Removed the full UID/GID failure error log example and explicit recovery command (podman system migrate).
  • Removed the explicit privileged ports error message text (rootlessport cannot expose privileged port 80).
  • Removed the Arch Linux-specific pacman example for fuse-overlayfs.

Overall Impact

  • Documentation is now broader, more accurate, and more structured.
  • One-off deep Linux troubleshooting examples were reduced, but no core setup steps were lost.

@stasadev stasadev requested a review from rfay December 9, 2025 19:09
@stasadev stasadev marked this pull request as ready for review December 9, 2025 19:09
@rfay rfay force-pushed the 20251122_stasadev_podman branch from bba5f65 to ac6fe7e Compare December 10, 2025 17:33
Copy link
Member

@rfay rfay left a comment

Choose a reason for hiding this comment

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

I think this should either be targeted at the v1.25.0 release, or alternately promote it earlier and try to get some people to use HEAD.

It's looking good, I added some more suggestions.

Now I'll try some more manual testing.

Copy link
Member

@rfay rfay left a comment

Choose a reason for hiding this comment

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

I got it working fine on macOS and will use it for a while for daily use.

I didn't succeed with Fedora 43. The /mnt/ddev_config was always mounted as root and couldn't be copied at startup time.

I imagine this was something I did wrong.

@stasadev
Copy link
Member Author

stasadev commented Dec 19, 2025

I edited the blog:

  • Removed DOCKER_HOST
  • Added explanation why to install docker CLI
  • Removed all the instructions from Podman rootful, but the section remained to show the difference
  • Simplified instructions
  • Added checks for already applied settings based on what was done on Fedora

I'm not sure that macOS instructions are correct.

@stasadev stasadev requested a review from rfay December 19, 2025 19:26
Copy link
Member

@rfay rfay left a comment

Choose a reason for hiding this comment

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

I tested on podman rootless and docker rootless, Ubuntu 25.10, WSL2 ARM64 and everything went OK. Minor comments. Congrats on all this.

podman system reset
```

This removes all existing containers, images, and volumes (similar to `docker system prune -a`).
Copy link
Member

Choose a reason for hiding this comment

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

After podman system reset I was no longer able to docker ps (but after reboot I could)

rfay@ub2510:~/workspace/ddev.com$ podman system reset
WARNING! This will remove:
        - all containers
        - all pods
        - all images
        - all networks
        - all build cache
        - all machines
        - all volumes
        - the graphRoot directory: "/home/rfay/.local/share/containers/storage"
        - the runRoot directory: "/run/user/1000/containers"
Are you sure you want to continue? [y/N] y
 A "/home/rfay/.config/containers/storage.conf" config file exists.
Remove this file if you did not modify the configuration.

Copy link
Member Author

Choose a reason for hiding this comment

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

I tested it on Arch Linux, and docker ps worked fine without reboot after podman system reset.

but after reboot I could

Maybe this command can help to do it without reboot:

systemctl --user restart podman.socket

@stasadev
Copy link
Member Author

@stasadev stasadev force-pushed the 20251122_stasadev_podman branch from 8d9c3b2 to 9d0ab90 Compare December 30, 2025 18:39
@stasadev stasadev marked this pull request as ready for review December 30, 2025 18:40
@stasadev stasadev force-pushed the 20251122_stasadev_podman branch 2 times, most recently from 2c48e2e to aa3fbf5 Compare December 30, 2025 19:41
@stasadev stasadev force-pushed the 20251122_stasadev_podman branch from 01ed945 to 742ee23 Compare January 6, 2026 23:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants