Hello there, I would like to run blender in a docker container. How can I do that?
Welcome
..
i guess like for any other application..
..but then also:
What’s the reason for this ??
For such a “specific” application this might be onely additional overhead (keyword: performance).
Also:
Blender is one of the very few applications where you can use several version a tthe same time.
Additionally you need to include all the extra addons you want.. (not the shipped with ones)..
Hi there and welcome to Blender Artists
,
By run Blender in a Docker container, what do you mean. It is possible to run a Docker container that lets you access Blender from a web browser, although the performance isn’t great.
Ohh.. maybe for render only ? For example a renderfarm ?? So to administe this “better” ??
I think there are some simple to more renderfarm scripts" for blender out there..
Also wasn’t flamenco meant to be for this ?
( This wasn’t actually meant as direct reply to @Withers99; those dam..d two reply buttons
. )
The docker container I linked to let’s you run a full Blender GUI, it’s basically remote desktop into a lightweight VM. However, the performance is terrible, I really wouldn’t recommend it. Use proper remote desktop software if you want something like that.
Worth separating two very different goals here, because the answer flips depending on which one you’re after.
If you want the full Blender GUI inside a container (like the linuxserver image), then yeah, the others are right - it’s painful and the interactivity suffers. That’s not really what containers are good at.
But if the goal is rendering - running Blender headless to crank out frames - then Docker is a great fit, and it’s what most people actually mean when they containerize it. You skip the GUI entirely and drive it from the command line:
blender -b yourfile.blend -o //out/frame_#### -f 1
The container just needs the Blender binary - the official tarball drops straight into a slim Debian/Ubuntu image, no install step (just a couple of system libs like libXi/libXrender/libGL). For GPU rendering you pass the card through with the NVIDIA Container Toolkit and run with --gpus all. Cycles on CUDA/OptiX is pure compute, so it doesn’t need a display at all; if you also want Eevee headless, that’s where EGL comes in so it can render without an X server. CPU rendering needs nothing special.
The real win is reproducibility - same Blender version, same add-ons, same OCIO config on every machine - which is why render farms and CI setups lean on it. Something like Flamenco handles the orchestration side, but containerizing the worker itself is what makes every node identical.
So: GUI in a container - skip it. Headless render node in a container - go for it.
This is a fantastic comment. You’ve inspired me to set up docker for some projects I’ve been working on, though not for blender itself. I’ve been using openFOAM in an addon I am working on and needed to access it via WSL on windows. I am working on this across multiple workstations and setting up the environment each time is a hassle.
Thanks for the info!