簡單的說,就是讓 docker container 支援使用gpu運算。
首先準備全新安裝的 ubuntu 18.04 系統
安裝 nvidia driver
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
ubuntu-drivers devices
ubuntu-drivers devices 指令會顯示許多可以安裝的版本,這裡是選recommended 的版本
sudo apt-get install nvidia-driver-450
安裝docker
先移除舊版本docker,但我們是全新安裝所以不需要這步。
sudo apt-get remove docker docker-engine docker.io containerd runc
設定 REPOSITORY
安裝 repository 工具
sudo apt-get updatesudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
新增官方 GPG KEY
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
驗證KEY (可略過)
sudo apt-key fingerprint 0EBFCD88
確認是不是出現以下的訊息
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
新增repository
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
正式安裝 docker engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
安裝 nvidia-container-runtime
設定 repository
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update
安裝
sudo apt-get install nvidia-container-runtime
設定
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
設定完重新開機,載入docker image檔
sudo docker load < filename.tar
執行範例,重點是 runtime=nvidia ,這樣才可以確保docker裡的程式可以使用nvidia顯卡的資源。
參考資料: