rootless (sudoなし) でdockerを動かすときはUID/GIDを指定する
ルートレス (sudoなし/rootにならずに) でdockerを動かす際に、自身のホームディレクトリ等をマウントしていると、何もケアをしないと読み書きができない。そのため、docker起動時にdockerコンテナのUIDとGIDを変更する必要がある。
docker run -it -u $(id -u):$(id -g) -v $HOME:$HOME -d --gpus all --name my_gpu_env --shm-size=4gb pytorch/pytorch:1.10.0-cuda11.3-cudnn8-devel bash
-u $(id -u):$(id -g)
でUIDとGIDを上書きしている。
ちなみに、上記コンテナへのbashによるアクセスは以下の通り。(UID/GIDの件は関係ないがメモ)
docker exec -it my_gpu_env bash