Some images are released at https://hub.docker.com/u/sktometometo
Docker images for various purpose. (Mainly for ROS + CUDA)
Currently images below are available.
- TODO
<image name>
は変更すること
sudo docker run --net=host --privileged -v /dev:/dev -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY --gpus all -it sktometometo/<image name>
公式ページ を見ると OS/Distribution ごとのインストール方法が書いてあるので、これに従うとインストールできる.
また、docker/docker-install https://github.com/docker/docker-install にあるscriptを使うと手軽にインストールできる. (この手順)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
インストール後は以下のコマンドでコンテナが立ち上がるか確認
sudo docker run hello-world
インストール後は以下の作業をしておくと開発時に楽
参考: https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user
sudo groupadd docker
sudo usermod -aG docker $USER
サインアウト&サインインしたあとに,以下が動作するか確認する
docker run hello-world
参考: https://docs.docker.com/engine/install/linux-postinstall/#configure-docker-to-start-on-boot
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
https://github.com/NVIDIA/nvidia-docker 上記の方法で docker-ce ( community edition ) をインストールした後に行う. 公式のインストールページの通りにインストールする. https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker nvidia-drivers はインストールされているものとする.
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt update
sudo apt install nvidia-docker2
docker service を restart
sudo systemctl restart docker
以下のコマンドで動作確認
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
$ sudo docker build -t <image名>:<タグ名> <dockerfileのある場所>
実行例
$ sudo docker build -t sktometometo:ros_melodic_cuda10.0 ./ros_melodic_cuda10.0
$ sudo docker run --rm -it <image name>:<tag name>
--rm
: コンテナ終了時にコンテナを自動削除--it
: コンテナをインタラクティブモードで起動
ホストOSに nvidia driver を入れた上で以下のように --gpus all などの指定をつけてコンテナを立ち上げると、コンテナ内でGPUが使える
$ sudo docker run --rm -it --gpus all <image name>:<tag name>
$ sudo docker run --rm -it -v <ホストのディレクトリ>:<コンテナ内のディレクトリ> <image name>:<tag name>
$ sudo docker run --rm -it --privileged -v /dev:/dev <image name>:<tag name> rs-enumerate-devices
$ sudo docker run --rm -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY <image name>:<tag name>
$ sudo docker run --rm -it --net host <image name>:<tag name>