DockerでGUIを使う方法、いろんな記事がネット上にあるんだけどいつも悩むから、自分用の備忘録的にまとめておく。

DockerのGUIの設定方法

Xサーバーの受け入れの制限をなくす(参考

xhost +

以下のオプションをdocker run時に指定する

-v /tmp/.X11-unix:/tmp/.X11-unix –env=”DISPLAY”

OpenGLを動かす場合(CUDAを使わない場合)

上記に加えて

ENV NVIDIA_VISIBLE_DEVICES ${NVIDIA_VISIBLE_DEVICES:-all}
ENV NVIDIA_DRIVER_CAPABILITIES ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics

をDockefileに指定する

OpenGLを動かす場合(CUDAを使う場合)

※ベースイメージにcudaglを使えば楽だけど、そうとも行かない場合は以下をDockerfileに書く

「DockerのGUIの設定方法」に加えて、以下をDockerfileに書く

# apt-get
RUN apt update && apt install -y --fix-missing\
    wget git unzip build-essential cmake libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev curl lsof apt-utils lsb-core libatlas-base-dev vim sudo libxau-dev libxdmcp-dev libxcb1-dev libxext-dev libx11-dev

# ベースに使っているUbuntuのバージョンによって変更すること!
COPY --from=nvidia/opengl:1.0-glvnd-runtime-ubuntu16.04 \
    /usr/local/lib/x86_64-linux-gnu \
    /usr/local/lib/x86_64-linux-gnu

# ベースに使っているUbuntuのバージョンによって変更すること!
COPY --from=nvidia/opengl:1.0-glvnd-runtime-ubuntu16.04 \
  /usr/local/share/glvnd/egl_vendor.d/10_nvidia.json \
  /usr/local/share/glvnd/egl_vendor.d/10_nvidia.json

RUN echo '/usr/local/lib/x86_64-linux-gnu' >> /etc/ld.so.conf.d/glvnd.conf && \
    ldconfig && \
    echo '/usr/local/$LIB/libGL.so.1' >> /etc/ld.so.preload && \
    echo '/usr/local/$LIB/libEGL.so.1' >> /etc/ld.so.preload
                                                                                                                                                                                                                                     
ENV NVIDIA_VISIBLE_DEVICES \
    ${NVIDIA_VISIBLE_DEVICES:-all}
ENV NVIDIA_DRIVER_CAPABILITIES \
    ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics

GUIが動くことを確認

OpenGlを使わなくても良い場合

xeyesが動くことを確認するのが簡単

apt install x11-apps

でxeyesがインストールできる。

xeyes

で実行して、動くことを確認。エラーが出るなら、何か設定がおかしい(大抵はdocker run時の引数)

OpenGLを使う場合

まず上記のxeyesを確認する。OpenGLはそれだけでは動いていることが確認できないので、glxgearsを試す。(xeyesが動かないならOpenGLも動かないので、xeyesを試す)

上手く動くなら、歯車のデモが動く

apt install mesa-utils

でglxgearsがインストールできる。

glxgears

で歯車のデモが動くことを確認する。

Categories:

No responses yet

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA