Can I run Discourse in "rootless" Docker on VPS?

AI-generated summary

This thread discusses the feasibility of running Discourse in a rootless Docker environment on a VPS. JBull initially asked if Discourse could run on a Pair.com Ubuntu VPS, which provides Docker but operates in a rootless mode that may limit certain applications. Citing previous advice that root privileges are required for installation, JBull sought confirmation that this setup was incompatible.

Falco responded that while there is a good chance it will not work, it is worth attempting if the user already possesses the VPS. Later in the discussion, rrit inquired about the current state of rootless support in 2026, asking specifically about known blockers and whether official support is on the roadmap. Falco clarified that the team is not explicitly pursuing rootless support, but suggested that users might succeed by using pre-bootstrapped images from @featheredtoast, such as the discourse/discourse container image.

A post by Jay Pfaffman says

You need root privileges and to be able to install docker.

I have an Ubuntu VPS hosted by Pair.com, which offers a Docker installation, so I don’t need root privileges to install Docker. However, Pair cautions that

Our Docker installations run in a rootless environment, which may limit certain applications.

(Docker description of “rootless”.)

Am I correct that I can’t use Discourse on this VPS because it can’t be installed and run in a “rootless” Docker?

There is a good chance it won’t work, but if you already have this VPS it may be worth a try.

Thanks. I’ll try that.

How did this go? I’m also on a Pair VPS.

@Falco So in 2026: How is the current state of rootless Docker and Discourse?

  • Generally runnable but unsupported - assuming having a proper setup and configuration?
  • Does CDCK internally run any rootless Discourse instances?
  • Are there known blockers?
  • Is official rootless Docker support on any roadmap?

Background: I’ll try to make run a Discourse project in a rootless Docker environment :crossed_fingers:

This is not something any of us are pursuing explicitly, but you may get away with it by using the @featheredtoast work on pre-bootstrapped images, ie the discourse/discourse container image.