this post was submitted on 05 Nov 2023
18 points (95.0% liked)

Selfhosted

39964 readers
408 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

I'm trying to switch my existing Docker setup to a rootless podman one. The main issue tripping me is how to mount remote volumes. My file server is a different machine, so I mount the data into docker containers via a NFS volume. However, I can't do this with podman since the normal user doesn't have the rights for mounting NFS drives. Only the root user can do that.

One option I've thought of is to mount everything I need via fstab and use bind mounts. Is there a better solution?

top 6 comments
sorted by: hot top controversial new old
[–] [email protected] 4 points 1 year ago

I use fstab, seems cleaner instead of relying on podman. Otherwise can you give the podman user permissions to mount volumes?

[–] [email protected] 4 points 1 year ago

It's not possible to mount NFS shares without root (a rootful container would work but I don't recommend it). Docker allows it because it implicitly runs as root. Cleanest solution is to mount it from the host's fstab and use a bind mount.

[–] [email protected] 2 points 1 year ago (1 children)

You can mount NFS shares as non-root user, look it up some more.

What trips people is that it needs some extra configuration on both server and client, the UID needs to match, and the user needs to own the mountpoint dir.

The error message from NFS ("only root can do that") doesn't help either.

[–] [email protected] 1 points 1 year ago

Can you really? I'd love some pointers on that. I'll try to look it up more, thanks

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

Update: I took some suggestions and ideas from the comments here and built a system for this:

  • Create the mountpoint directories
  • Add the mounts to /etc/fstab with the user,noauto option
  • I'm using quadlets, so add a new [service] section to my container file and add ExecStartPre and ExecStopPost entries with mount and umount commands
  • Add bind mount volumes to the NFS shares pointing to the local mountpoint

This allows me to have the mounts only active when the container is running. And I can still have rootless podman containers. Seems to be working well in the limited testing I did yesterday.

[–] [email protected] 0 points 1 year ago

I've had issues with this too and reverted back to rooted docker. I even tried podman and system NFS mounts that it binds too with varying issues.

It looks like you can't actually do this with podman for varying reasons.