# Minimal Docker Vulkan offscreen setup

**URL:** <https://forums.developer.nvidia.com/t/minimal-docker-vulkan-offscreen-setup/242883>\
**Category:** Vulkan\
**Tags:** docker\
**Created:** [February 14, 2023, 11:36pm UTC](https://forums.developer.nvidia.com/t/minimal-docker-vulkan-offscreen-setup/242883 "2023-02-14T23:36:04Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![fxiang](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@fxiang](https://forums.developer.nvidia.com/u/fxiang)\
**Post date:** [February 14, 2023, 11:36pm UTC](https://forums.developer.nvidia.com/t/minimal-docker-vulkan-offscreen-setup/242883/1 "2023-02-14T23:36:04Z")

</div>

Hi,  
I am trying to set up a minimal Docker environment for a Vulkan-based offscreen rendering application. (I am on driver 525.85.05 with RTX 4090.)  
The **very minimal** setup I have figured out is the following Dockerfile.

```auto
FROM ubuntu:22.04

RUN apt update && apt install -y libegl1 libxext6 # why???
COPY 10_nvidia.json /usr/share/glvnd/egl_vendor.d/10_nvidia.json # why???
COPY nvidia_icd.json /usr/share/vulkan/icd.d/nvidia_icd.json

ENV NVIDIA_DRIVER_CAPABILITIES graphics,utility,compute

```

I can render successfully with `docker run --gpus all docker_image command`.

I wonder why egl, xext, and glvnd are required to run offscreen Vulkan (without them, even `vulkaninfo` would fail). These libraries seem to be GL and X11 related, which Vulkan does not seem to rely on. (I was assuming  
libGLX\_nvidia.so would be all I need.)

Is there a deep connection between these libraries and Vulkan, or is there an even simpler setup I can use for my Vulkan application?

Thank you!

---

<div class="post-metadata">

**Author:** ![MarkusHoHo](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/markushoho/32/233145_2.png) [@MarkusHoHo](https://forums.developer.nvidia.com/u/MarkusHoHo)\
**Post date:** [February 24, 2023, 12:57pm UTC](https://forums.developer.nvidia.com/t/minimal-docker-vulkan-offscreen-setup/242883/2 "2023-02-24T12:57:14Z")

</div>

Hello @fxiang, welcome to the NVIDIA developer forums!

For any kind of rendering, even headless or off-screen rendering, you will need to have a render context, which is provided for example by EGL, not GLX. GLX are just GL extensions to be able to use X11 at all.

As for [GLVND you can check the github](https://github.com/NVIDIA/libglvnd), it is simply a helper library needed for interoperability between GL and X11 or Vulkan.

So I don’t think you can get around this setup.

Thanks!
