#はじめに
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"]