Four things have to be true, and they fail in this order:
1. The host has a working driver. The card being visible in a device list is not the same as a driver being loaded. Check that the kernel module is in use, and on platforms where the vendor driver is an optional install, that it is installed.
2. The device nodes are passed into the container. A container sees no hardware unless the runtime is told to give it some. This is a checkbox or a resource setting on most platforms, and on plain container runtimes it is an explicit device mapping.
3. The container has the userspace libraries. The kernel driver on the host is not enough — the application inside needs the matching userspace pieces, and their version has to be compatible with the host driver. This is the mismatch that produces "no device available" while everything looks correctly wired.
4. The application is configured to use it, and built with support for it. Many images have separate variants for hardware acceleration.
Most failures are step 3, and they present exactly like step 2.