天天看點

linux mint安裝docker-ce以及nvidia-docker遇到的問題

安裝docker-ce

參考這篇博文:

https://www.cnblogs.com/TsingJyujing/p/7908520.html

!注意:如果是linux mint的發行版本号與ubuntu不同,是以需要把$(lsb_release -cs) 改為xenial

安裝nvidia-docker(解決方法在最後面)

https://github.com/NVIDIA/nvidia-docker

這是官方文檔

## If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers If you have nvidia-docker 1.0 installed: we ne 
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge -y nvidia-docker

# Add the package repositories
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
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

# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
           

但是安裝過程中會出現

sudo apt-get update
E: 軟體源清單 /etc/apt/sources.list.d/nvidia-docker.list 第  行中的類别 “<!DOCTYPE” 無法識别
E: 無法讀取源清單。
           

觀察發現原因是

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list
           

指令輸出結果為一個html檔案與要求檔案不符

為什麼會是html檔案呢?

我們觀察參數:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
echo $distribution
linuxmint19
           

原來如此!!

原指令是按照linuxmint19的指令下載下傳的,而對應的官方沒有這個檔案,是以下成了一個html檔案,而這個html無法識别。

由于linux mint基于ubuntu,是以我們下載下傳ubuntu對應版本。

那ubuntu對應的$distribution是什麼呢?

我們啟用一個ubuntu的docker鏡像:

sudo docker run -it ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
c64513b74145: Pull complete 
b8b12bad90: Pull complete 
c5d85cf7a05f: Pull complete 
b6b268720157: Pull complete 
e12192999ff1: Pull complete 
Digest: sha256:f119dc0737f57f704ebecac8a6d8477b0f6ca1ca0332c7ee1395ed2c6a82be7
Status: Downloaded newer image for ubuntu:latest
root@d7af2b19b653:/# distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
root@d7af2b19b653:/# echo $distribution
ubuntu18.
root@d7af2b19b653:/# exit
exit
           

是以把$distribution替換成ubuntu18.04就ok了

curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list
           

運作正常!

繼續閱讀