Yes, multiple media containers can share one GPU when the host driver and runtime support concurrent access and each container receives the device correctly.
Containers do not normally own a GPU exclusively in the way a fully passed-through virtual machine does. Intel Quick Sync and AMD VA-API commonly expose shared render devices, while NVIDIA containers can share one driver stack and GPU subject to hardware, driver, codec, memory, and session limits. Conflicts arise when orchestration allocates the device exclusively, permissions differ, containers ship incompatible libraries, or simultaneous transcodes exceed the GPU’s practical capacity.
Confirm the Host Supports Concurrent GPU Workloads
Install and verify the host driver first, then run a hardware-accelerated transcode outside or inside one known-good container. Record the GPU model, driver, supported encode and decode codecs, memory, and observed utilization.
A TrueNAS community discussion reports multiple apps sharing the same GPU when it is exposed for use rather than allocated as an exclusive application resource. The distinction is between shared device access and exclusive passthrough.
If one container cannot use the GPU reliably, do not add another. Fix the host driver, kernel device, firmware, or runtime before testing concurrency.
Expose the Correct Device to Every Container
For Intel and AMD, compare the /dev/dri card and render nodes passed to each container. For NVIDIA, compare the runtime or device request, visible-device variables, and driver capabilities.
A NixOS Jellyfin case describes the same host GPU behaving differently across containers because the operating-system and device environment changed. It illustrates why matching device exposure and libraries matter more than copying one Compose line.
Use the minimum device set each app requires and avoid privileged mode as a shortcut. Confirm the expected render node or NVIDIA device appears inside every container after a rebuild.
Match Permissions and User Groups Across Containers
Record the numeric owner and group of the render device on the host, then confirm each container process has the corresponding supplemental group or permission. Image-specific usernames may map to different numeric IDs.
A container that lists the GPU but cannot open it may fall back to software transcoding or report permission denied. That failure can look like a device conflict when the other media container continues working.
Test each container alone with the same file and codec. Keep permission fixes explicit in Compose so image upgrades and recreations do not remove them.
Check Codec, Driver, and Runtime Compatibility
Compare the codecs and filters each app asks the GPU to run, including H.264, HEVC, AV1, tone mapping, subtitles, scaling, and OpenCL or CUDA filters. One workload may require capabilities another never uses.
A current GPU passthrough guide for Jellyfin emphasizes matching the container configuration to Intel QSV, NVIDIA NVENC, or AMD VA-API rather than treating all hardware acceleration paths as interchangeable. The runtime must match the GPU family.
Keep the host driver compatible with the container runtime libraries and avoid bundling conflicting drivers inside individual media containers. Test decode, encode, and tone mapping separately.
Measure Concurrent Sessions, Memory, and Thermal Limits
Start one hardware transcode in each container and monitor GPU processes, utilization, encoder and decoder load, memory, temperature, errors, and stream stability. Increase concurrency gradually using representative media.
A Proxmox community setup describes multiple Jellyfin instances transcoding at the same time and verifying activity from the host. It also shows that concurrent sessions have practical limits set by hardware and software.
A shared GPU is working when both apps remain accelerated and responsive. Stutters, failed encoder creation, out-of-memory errors, thermal resets, or one app forcing the other to software indicate the workload exceeds the current margin.
Keep Separate Config and Transcode Paths While Sharing the GPU
Give each media container its own configuration database, cache, transcode directory, ports, and identity. Share only the read-only media library and GPU device unless the applications explicitly support a common state directory.
The ZimaSpace guide to isolating container dependencies helps distinguish a GPU conflict from a database, cache, network, or mount failure.
The design is validated only when both containers survive rebuilds, use hardware acceleration simultaneously, respect their own permissions and state, and stay within session, memory, and thermal limits. Use separate GPUs or software fallback when concurrent workloads cannot meet the required quality reliably.
Support & Tips
More to Read

Can Plex Share a GPU With Another Docker Container?
Plex and another container can often access the same GPU, but you must test driver support, device mapping, video-engine load, memory, and recovery behavior.

How to Tell Whether a Plex Error Comes From the Client or Server
Reproduce the same item on another client, compare the session path, then collect server evidence only after scope tells you where the failure actually...

How to Configure Plex Cache and Transcode Temporary Storage
Protect persistent Plex state while placing transcode temp files on suitable local storage, then verify cleanup, free space, and restart behavior.

