LoginSignup
1
2

More than 3 years have passed since last update.

nvidiaのdockerでroot以外のユーザでGPUを使う

Posted at

はじめに

NvidiaはDokcerのサポートを強化しています。NGCなどから、イメージをダウンロードしコンテナとして実行が可能です。
なにかとバージョン依存の多いdarknetだのopenCVだのをつかうにあたって、dockerがとても便利だとおもって、openCVのイメージ だのdarknetのイメージだのをつくって、さあこれから使おうとおもって、User追加してみたら、rootじゃないとGPUが使えませんでした。

やったこと

なかなか検索してもひっかからなかったので、ここに書いとくことにしました。
解決策は以下
nvidia-docker seems unable to use GPU as non-root user

Dockerfileにすろと、こんなの足しとけばいけました。

RUN useradd -m ${USER} && \
    echo ${USER}:${PASSWD} | chpasswd && \
    echo "${USER} ALL=(ALL) ALL" >> /etc/sudoers
RUN sudo usermod -a -G video ${USER}

上記のdarknetのイメージをもとにするんだったらこんな感じ
ついでに、Dockerでapt-get upgradeもしてからユーザ追加してます。

FROM darknet:100
ENV USER="hoge"
ENV PASSWD="hogehoge"
ENV HOME=/home/${USER}
RUN apt-get -y update
RUN echo '* libraries/restart-without-asking boolean true' |  debconf-set-selections
RUN apt-get -y upgrade
RUN apt -y install xfce4-terminal
RUN useradd -m ${USER} && \
    echo ${USER}:${PASSWD} | chpasswd && \
    echo "${USER} ALL=(ALL) ALL" >> /etc/sudoers
RUN sudo usermod -a -G video ${USER}
USER ${USER}
WORKDIR ${HOME}
CMD ["/bin/bash"]
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2