本筆記在 Ubuntu-20.04.1 環境進行操作
測試安裝時間: 2024/10/05
內容分為三部分:
以往在使用有 GPU 的 Docker 是安裝 nvidia-docker,但是 Nvidia 已不再維護和支援該 repository 了。
Nvidia 是說改成用 nvidia-container-toolkit 來取代 nvidia-docker,也有提供詳細的官方安裝文件。
NVIDIA 官方文件: Install Docker Engine on Ubuntu
這邊使用 apt
repository 下載
先解除安裝所有 Docker 相關資料。
更新 apt 安裝包以及相關套件。
創建一個新的目錄 /etc/apt/keyrings
,並設置其權限,-m 0755
指定創建的目錄或檔案的權限,-d
表示要創建一個目錄。
使用 CURL 從指定 URL 下載 Docker 的 GPG 金鑰並將其保存到 -o
選項指定的文件位置。
更改 /etc/apt/keyrings/docker.asc
文件的權限,使所有用戶都能夠讀取這個文件。
添加 Docker repository 的源到 Ubuntu 系統中的 sources.list,讓系統能夠從 Docker 官方的源中下載和安裝 Docker 軟件包。
|
是管道符號,將上一條命令的輸出作為下一條命令的輸入。tee
命令會將輸入同時輸出到終端和指定文件。這裡是將 echo 的輸出內容寫入到 /etc/apt/sources.list.d/docker.list
文件中,寫入內容例如: deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu focal stable
。> /dev/null
將 tee
命令的標準輸出重定向到 /dev/null,即丟棄終端的輸出。安裝 Docker
確認是否安裝成功,
使 Docker 成為 non-root user (可跳過)
Linux post-installation steps for Docker Engine
The Docker daemon binds to a Unix socket, not a TCP port. By default it's the root user that owns the Unix socket, and other users can only access it using sudo. The Docker daemon always runs as the root user.
在使用 docker 命令時,都要在前面加上 sudo
,不然無法連上 Docker daemon server。
如果不想每次都加上 sudo,則執行以下命令。
如果在這之前就已經用 sudo
執行過 Docker CLI commands,會出現以下錯誤。
則需要執行以下命令,更改 ~/.docker/
的權限。
也有可能出現以下問題,但 $USER
已在 groups
裡面
檢查 ~/.docker/config.json
裡面是否有出現 "currentContext": "desktop-linux",
的設定,如果有請刪除,然後重新開機,再執行上面把 $USER 加入 Docker Group 的動作。
已有很多文章介紹,這邊部贅述,請參考這篇文章,或是上網搜尋其他文章。
NVIDIA 官方文件: Installing the NVIDIA Container Toolkit
執行命令時可能會失敗,請檢查你的 proxy 設定,或多執行幾次直到成功。
nvidia-ctk
命令會修改主機上的 /etc/docker/daemon.json
,所以要重新啟動 docker。
以下為 Dockerfile
構建 images
創建 container,並開啟 bash
進入 container 的 bash,執行 python
,檢查 torch.cuda
是否可用,若印出 True 則代表成功了。