You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Docker容器中Nvidia Nsight Systems图形界面启动失败问题

问题:Docker容器中启动Nsight Systems图形界面失败(Qt xcb插件加载错误)

我需要创建一个能运行Nvidia Nsight Systems图形界面的Docker容器,用来生成CUDA和Python应用的性能报告。构建容器过程顺利,但执行nsys-ui启动图形界面时出现如下错误:

################# ERROR: CrashReporter #################
CrashReporter

Qt initialization failed

Failed to load Qt platform plugin: "xcb"
Library path: /opt/nvidia/nsight-systems/2023.4.1/host-linux-x64/Plugins/platforms/ http://libqxcb.so
Application is going to abort
sh: 1: xmessage: not found
/usr/local/bin/nsys-ui: line 63: 38 Aborted (core dumped) "$NV_AGORA_PATH/CrashReporter" --hide-stack "NVIDIA Nsight Systems" "NsightSystems" "2023.4.1 (Build 2023.4.1.97-234133557503v0)" "$NV_QUADD_PATH" "$@"
""

我尝试在Dockerfile中添加libxcb-xinerama0、libxcb-cursor0等依赖库,但问题仍未解决。以下是我使用的Dockerfile、构建及运行命令,求可行的解决方案或完整Docker配置方案。

Dockerfile内容

FROM nvcr.io/nvidia/cuda:12.0.1-devel-ubuntu22.04

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update -y && \
    apt-get install -y --no-install-recommends \
        apt-transport-https \
        ca-certificates \
        dbus \
        fontconfig \
        gnupg \
        libasound2 \
        libfreetype6 \
        libglib2.0-0 \
        libnss3 \
        libsqlite3-0 \
        libx11-xcb1 \
        libxcb-glx0 \
        libxcb-xkb1 \
        libxcomposite1 \
        libxcursor1 \
        libxcb-xinerama0 \
        libxdamage1 \
        libxi6 \
        libxml2 \
        libxrandr2 \
        libxrender1 \
        libxtst6 \
        libgl1-mesa-glx \
        libxkbfile-dev \
        openssh-client \
        libxcb-cursor0\
        wget \
        xcb \
        xkb-data && \
    apt-get clean

RUN cd /tmp && \
    wget https://developer.nvidia.com/downloads/assets/tools/secure/nsight-systems/2023_4_1_97/nsight-systems-2023.4.1_2023.4.1.97-1_amd64.deb && \
    apt-get install -y ./nsight-systems-2023.4.1_2023.4.1.97-1_amd64.deb && \
    rm -rf /tmp/*

# CMD ["nsys-ui"]

构建命令

docker build -f nsight-systems.Dockerfile --no-cache --tag=nsight-systems:2023.4 .

运行命令

docker run -it --rm --gpus all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --cap-add=SYS_ADMIN --security-opt seccomp=unconfined -v $(pwd):/mnt --network=host nsight-systems:2023.4

启动命令

nsys-ui

解决方案

1. 补充缺失的Qt xcb依赖库

你的Dockerfile中仍缺少部分xcb相关依赖,同时错误提示xmessage: not found,需添加以下包:

libxcb-util1 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-shape0 libxcb-sync1 libxcb-xfixes0 libxcb-xinput0 x11-utils

2. 更新后的Dockerfile

FROM nvcr.io/nvidia/cuda:12.0.1-devel-ubuntu22.04

ENV DEBIAN_FRONTEND noninteractive
# 明确指定Qt平台插件路径
ENV QT_QPA_PLATFORM_PLUGIN_PATH=/opt/nvidia/nsight-systems/2023.4.1/host-linux-x64/Plugins/platforms

RUN apt-get update -y && \
    apt-get install -y --no-install-recommends \
        apt-transport-https \
        ca-certificates \
        dbus \
        fontconfig \
        gnupg \
        libasound2 \
        libfreetype6 \
        libglib2.0-0 \
        libnss3 \
        libsqlite3-0 \
        libx11-xcb1 \
        libxcb-glx0 \
        libxcb-xkb1 \
        libxcomposite1 \
        libxcursor1 \
        libxcb-xinerama0 \
        libxdamage1 \
        libxi6 \
        libxml2 \
        libxrandr2 \
        libxrender1 \
        libxtst6 \
        libgl1-mesa-glx \
        libxkbfile-dev \
        openssh-client \
        libxcb-cursor0 \
        wget \
        xcb \
        xkb-data \
        # 新增缺失依赖
        libxcb-util1 \
        libxcb-image0 \
        libxcb-keysyms1 \
        libxcb-render-util0 \
        libxcb-shape0 \
        libxcb-sync1 \
        libxcb-xfixes0 \
        libxcb-xinput0 \
        x11-utils && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

RUN cd /tmp && \
    wget https://developer.nvidia.com/downloads/assets/tools/secure/nsight-systems/2023_4_1_97/nsight-systems-2023.4.1_2023.4.1.97-1_amd64.deb && \
    apt-get install -y ./nsight-systems-2023.4.1_2023.4.1.97-1_amd64.deb && \
    rm -rf /tmp/*

3. 简化运行命令

无需额外的权限配置(除非有特殊需求),运行命令可简化为:

docker run -it --rm --gpus all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v $(pwd):/mnt nsight-systems:2023.4

4. 主机端X权限配置

确保主机允许容器访问X服务器,执行:

xhost +local:root

(注:此为临时开放权限,若需永久配置可修改/etc/X11/Xwrapper.config或设置更严格的xhost规则)

验证启动

进入容器后执行nsys-ui,图形界面应可正常启动。


内容的提问来源于stack exchange,提问作者Gota_12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 04:47:10