當你安裝完docker,並且設定好所有相關程序後。你正要使用docker去進行操作,讓專案可以在容器哩,方便平台移轉、備份、共用等等等等等;如果你遇到CUDA docker runtime 的問題時,這篇正適合你閱讀。
開始之前,如果你要參考怎麼安裝docker,設定docker環境,請參考:
完成上面的環境後,廢話不多說,讓我們開始吧!
一開始請新增來源庫:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
配置來源庫以使用體驗包(這是選項,你可以跳過這個步驟):
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
更新套件清單:
sudo apt-get update
安裝 NVIDIA Container Toolkit 軟體包:
sudo apt-get install -y nvidia-container-toolkit
重新啟動docker容器
sudo systemctl restart docker
使用以下命令配置容器運行nvidia-ctk(容器支援:
Docker、Containerd、CRI-O、Podman;請依據你的需求在=後面置換即可)
sudo nvidia-ctk runtime configure --runtime=docker
如果你遇到錯誤(通常是系統沒有daemon.json,那就手動新增一個之後在執行上面的指令),nvidia-ctk指令會自行修改/etc/docker/daemon.json主機上的檔案配置,將 用 NVIDIA 容器工具包描述寫進去docker,讓docker可以運作時認識nvidia host的GPU。
sudo nano /etc/docker/daemon.json
sudo nvidia-ctk runtime configure --runtime=docker
重新啟動 Docker 就完成了:
sudo systemctl restart docker
如果你之前遇到CUDA docker runtime的問題無法執行容器的錯誤,可以把該容器拿來測試,成功後就不會有錯誤畫面了。
例如: