[@toc]
參考資料:
Get Docker Engine - Community for Ubuntu
nvidia-docker#Quici Start
新舊Docker的差異
本文中的docker默認爲CE版,即社區版;對於個人或小型實驗室而言已然足夠。
現在不少網上的教程對新版docker
和nvidia-docker
的安裝已經不再適用了,最大的區別在於nvidia-docker2
已經被廢棄,nvidia-docker
已經支持原生的docker虛擬設備。
最直觀的體驗就是——你不再需要使用nvidia-docker
指令來進行docker指令操作,一旦安上了最新版的docker
和nvidia-docker
軟件包,你的所有docker鏡像/容器都將擁有使用N系GPU的權利。
需要注意的是:
- 你的Linux系統中應當裝好了NVIDIA的驅動;
- 你的docker版本在19.03+;
你可以使用docker -v
指令來檢查你的docker版本。如果版本過於落後,請使用:
sudo apt-get remove docker docker-engine docker.io containerd runc
移除舊版docker(該指令不會移除系統中現有的配置文件、鏡像和容器)。
如果你安裝過舊版的nvidia-docker,你可能還需要執行以下命令:
sudo apt-get remove nvidia-docker nvidia-docker2 docker-ce
此外,如果你有強迫症,還可以移除舊版的依賴包(此操作爲可選項,畢竟刪了可能待會兒換新版還要再裝回來):
sudo apt-get autoremove docker
如果要還要移除鏡像和容器,請直接移除
/var/lib/docker
目錄下的文件;使用apt-get purge <包名>
移除配置文件。
安裝新版docker
以下安裝針對19.03.2版本(2019.9月最新)左右的docker for ubuntu,不同版本請查看:
Get Docker Engine - Community for Ubuntu
如果你之前沒有安裝過docker或移除了舊版本的docker,你需要使用以下指令進行它的安裝:
- 以防萬一,先更新軟件索引:
sudo apt-get update
- 安裝一些附屬包,允許apt使用HTTPS安裝軟件:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- 下載、添加官方的GPG密鑰:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 選擇stable版本的apt倉庫:(注意:此處僅針對Ubuntu x86_64/amd64,不同版本或系統位數請上開頭給出的官方文檔查看)
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
- 更新apt倉庫的索引並安裝:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 運行hello-world測試:
sudo docker run hello-world
(Options)設置國內倉庫
以Ubuntu和阿里雲鏡像庫爲例:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [你的阿里雲鏡像地址]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安裝新版nvidia-docker
新版nvidia-docker的十分簡便,從安裝到測試只有兩個步驟:(以Ubuntu 16.04/18.04爲例)
- (Ubuntu 16.04/18.04)添加apt倉庫地址、密鑰和nvidia工具集:
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-get update
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
- 測試是否安裝成功(前提是已經安裝顯卡驅動):
docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
理論上應該會打印你的顯卡信息。