镜像概述和主要用途
adamrehn/ue4-runtime 镜像的各种标签提供了最小化、预配置的环境,用于通过 NVIDIA Container Toolkit 运行打包的 Unreal Engine 项目并实现完整 GPU 加速。(有关 NVIDIA Container Toolkit 的更多详情,请参阅 Unreal Containers 社区中心的 NVIDIA Container Toolkit 入门指南。)请注意,这些镜像适用于任何来源的 Linux 打包构建,不仅限于使用 ue4-docker 项目的容器镜像打包的构建。
提供了 OpenGL+Vulkan 和 OpenGL+Vulkan+CUDA 两种变体。每种镜像变体还提供了捆绑 X11 运行时库的配置,用于在主机系统的显示器上显示打包的 Unreal Engine 项目的输出。有关使用详情,请参阅 使用 X11 镜像 部分。
有关使用这些镜像通过 NVIDIA Container Toolkit 执行云渲染的详情,请参阅 Unreal Containers 社区中心的 云渲染指南。此外,还有 示例 Dockerfile 展示了 Unreal Engine 容器的各种用法,包括将打包项目封装在 ue4-runtime 镜像变体中的多阶段构建工作流。
别名标签
以下标签作为常用镜像变体的完全限定标签的便捷别名提供:
- latest 是 20.04-vulkan 的别名
- 20.04-opengl 是 20.04-vulkan 的别名
- 22.04-opengl 是 22.04-vulkan 的别名
- noaudio 是 20.04-vulkan-noaudio 的别名
- hostaudio 是 20.04-vulkan-hostaudio 的别名
- x11 是 20.04-vulkan-x11 的别名
Ubuntu 22.04 标签
- 22.04-vulkan: Ubuntu 22.04 + OpenGL + Vulkan + PulseAudio 客户端 + PulseAudio 服务器
- 22.04-cudagl11: Ubuntu 22.04 + OpenGL + Vulkan + CUDA 11.8.0 + PulseAudio 客户端 + PulseAudio 服务器
- 22.04-cudagl12: Ubuntu 22.04 + OpenGL + Vulkan + CUDA 12.2.0 + PulseAudio 客户端 + PulseAudio 服务器
- 22.04-vulkan-noaudio: Ubuntu 22.04 + OpenGL + Vulkan(无音频支持)
- 22.04-cudagl11-noaudio: Ubuntu 22.04 + OpenGL + Vulkan + CUDA 11.8.0(无音频支持)
- 22.04-cudagl12-noaudio: Ubuntu 22.04 + OpenGL + Vulkan + CUDA 12.2.0(无音频支持)
- 22.04-vulkan-hostaudio: Ubuntu 22.04 + OpenGL + Vulkan + PulseAudio 客户端(使用主机 PulseAudio 服务器)
- 22.04-cudagl11-hostaudio: Ubuntu 22.04 + OpenGL + Vulkan + CUDA 11.8.0 + PulseAudio 客户端(使用主机 PulseAudio 服务器)
- 22.04-cudagl12-hostaudio: Ubuntu 22.04 + OpenGL + Vulkan + CUDA 12.2.0 + PulseAudio 客户端(使用主机 PulseAudio 服务器)
- 22.04-vulkan-x11: Ubuntu 22.04 + OpenGL + Vulkan + PulseAudio 客户端(使用主机 PulseAudio 服务器)+ X11
- 22.04-cudagl11-x11: Ubuntu 22.04 + OpenGL + Vulkan + CUDA 11.8.0 + PulseAudio 客户端(使用主机 PulseAudio 服务器)+ X11
- 22.04-cudagl12-x11: Ubuntu 22.04 + OpenGL + Vulkan + CUDA 12.2.0 + PulseAudio 客户端(使用主机 PulseAudio 服务器)+ X11
Ubuntu 20.04 标签
- 20.04-vulkan: Ubuntu 20.04 + OpenGL + Vulkan + PulseAudio 客户端 + PulseAudio 服务器
- 20.04-cudagl11: Ubuntu 20.04 + OpenGL + Vulkan + CUDA 11.8.0 + PulseAudio 客户端 + PulseAudio 服务器
- 20.04-cudagl12: Ubuntu 20.04 + OpenGL + Vulkan + CUDA 12.2.0 + PulseAudio 客户端 + PulseAudio 服务器
- 20.04-vulkan-noaudio: Ubuntu 20.04 + OpenGL + Vulkan(无音频支持)
- 20.04-cudagl11-noaudio: Ubuntu 20.04 + OpenGL + Vulkan + CUDA 11.8.0(无音频支持)
- 20.04-cudagl12-noaudio: Ubuntu 20.04 + OpenGL + Vulkan + CUDA 12.2.0(无音频支持)
- 20.04-vulkan-hostaudio: Ubuntu 20.04 + OpenGL + Vulkan + PulseAudio 客户端(使用主机 PulseAudio 服务器)
- 20.04-cudagl11-hostaudio: Ubuntu 20.04 + OpenGL + Vulkan + CUDA 11.8.0 + PulseAudio 客户端(使用主机 PulseAudio 服务器)
- 20.04-cudagl12-hostaudio: Ubuntu 20.04 + OpenGL + Vulkan + CUDA 12.2.0 + PulseAudio 客户端(使用主机 PulseAudio 服务器)
- 20.04-vulkan-x11: Ubuntu 20.04 + OpenGL + Vulkan + PulseAudio 客户端(使用主机 PulseAudio 服务器)+ X11
- 20.04-cudagl11-x11: Ubuntu 20.04 + OpenGL + Vulkan + CUDA 11.8.0 + PulseAudio 客户端(使用主机 PulseAudio 服务器)+ X11
- 20.04-cudagl12-x11: Ubuntu 20.04 + OpenGL + Vulkan + CUDA 12.2.0 + PulseAudio 客户端(使用主机 PulseAudio 服务器)+ X11
Vulkan 渲染
使用 Vulkan 进行离屏渲染需要使用 Unreal Engine 4.25.0 或更新版本构建的项目。 要进行离屏渲染,请在运行打包的 Unreal 项目时指定 -RenderOffscreen 标志。
Unreal Engine 4.24 或更早版本下的 Vulkan 渲染需要从主机系统绑定挂载 X11 socket 并传播 DISPLAY 环境变量,以便将输出渲染到窗口。有关所需 docker run 标志的详情,请参阅 使用 X11 镜像 部分。
音频输出
默认情况下,容器镜像配置为在打包的 Unreal 项目初始化音频输出时按需启动 PulseAudio 服务器。这允许 Unreal Engine 在容器内生成音频输出,然后可以对其进行捕获(例如,使用 Linux 像素流送)。但是,对于绑定挂载主机系统 X11 socket 并在主机上显示输出的用例,此行为可能不理想,因为音频输出不会与渲染输出一起传播。每个镜像变体的 hostaudio 配置会覆盖此默认行为,并指示 Unreal Engine 使用从主机系统绑定挂载的 PulseAudio socket,从而允许在主机上听到音频输出。要从主机系统绑定挂载 PulseAudio socket,请使用以下标志:
bash
"-v/run/user/$UID/pulse:/run/user/1000/pulse"
使用 X11 镜像
每个镜像变体的 x11 配置扩展了 hostaudio 配置,并添加了运行创建 X11 窗口的应用程序所需的 X11 库。这些镜像设计用于在本地运行容器,并将打包的 Unreal 项目的输出直接显示在主机系统的显示器上。
要使用启用 X11 的镜像运行容器,Docker 主机系统需要运行 X11 服务器,并且需要将主机的 X11 socket 绑定挂载到容器中,如下所示:
bash
# 将 "adamrehn/ue4-runtime:x11" 替换为您选择的镜像标签
docker run --gpus=all -v/tmp/.X11-unix:/tmp/.X11-unix:rw -e DISPLAY adamrehn/ue4-runtime:x11 bash
如果需要音频输出,还需要绑定挂载主机系统的 PulseAudio socket:
bash
# 将 "adamrehn/ue4-runtime:x11" 替换为您选择的镜像标签
docker run --gpus=all -v/tmp/.X11-unix:/tmp/.X11-unix:rw "-v/run/user/$UID/pulse:/run/user/1000/pulse" -e DISPLAY adamrehn/ue4-runtime:x11 bash