shtaxxx日記

コンピュータアーキテクチャについて研究している研究者の日記や技術紹介

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