一、安裝過程:
https://blog.csdn.net/heiheiya/article/details/102834222
1、先卸載干凈以前的nvidia-docker
sudo 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 nvidia-docker
2、添加軟件包存儲庫
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
3、查看可安裝版本
apt-cache madison nvidia-docker2 nvidia-container-runtime
4、安裝nvidia-docker2【找到合適的版本安裝,不一定按照下面的版本】
sudo apt-get install -y nvidia-docker2=2.0.3+docker18.09.7-3 nvidia-container-runtime=2.0.0+docker18.09.7-3
5、測試成功 [下載合適的鏡像環境,比如python3.6環境,比如nvidia cuda9的鏡像]
docker run --runtime nvidia nvidia/cuda:9.0-base nvidia-smi
6、安裝tensorflow-gpu(不推薦直接下載tensorflow鏡像,可以先自己在docker啟動后安裝cuda\jupyter notebook\tensorflow自己需要的版本)
nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:latest-gpu
以上命令,如果沒有安裝tensorflow-gpu則會主動安裝並啟動。
查看所有正在啟動的容器:docker ps -a
進入容器:docker exec -it 2be581570c90 bash
二、卸載docker過程
https://blog.csdn.net/weixin_41282397/article/details/86524297
方法一:
sudo apt-get remove docker sudo apt-get remove --auto-remove docker
方法二:
sudo apt remove docker-ce
方法三:
# 查詢相關軟件包 dpkg -l | grep docker # 刪除這個包 sudo apt remove --purge docker***【這個是還有什么跟docker相關的,都刪掉】
三、遇到的錯誤
1、錯誤1
詳細操作:https://www.cnblogs.com/Lee-yl/p/12108255.html
ERROR:gzip: stdout: No space left on deviceE: mkinitramfs failure cpio 1
在sudo apt-get install時報錯,
采用df -h命令查看時,發現/boot目錄下空間不夠,故要將未使用的Ubuntu內核版本刪除。
采用dpkg --get-selections|grep linux命令查看安裝了哪些Ubuntu內核版本刪除
采用uname -a查看當前使用的Ubuntu內核版本。
刪除無用的內核版本:采用sudo apt-get purge刪除,如輸入命令:sudo apt-get purge linux-modules-4.15.0-45-generic【注意,Ubuntu16.04內核版本不要太高,后面容易出問題】
2、錯誤2
sudo apt-get install *****
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹
正在讀取狀態信息... 完成
E: 無法定位軟件包 *****
原因:
方法一:【可能不能成功】
sudo apt-get update
更新一些軟件源。
方法二:【換源】
-
在 etc/apt 下的sources.list
-
添加鏡像源:*************
-
$ sudo apt- get update
3、錯誤3:
下列軟件包有未滿足的依賴關系:
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹
正在讀取狀態信息... 完成
有一些軟件包無法被安裝。如果您用的是 unstable 發行版,這也許是
因為系統無法達到您要求的狀態造成的。該版本中可能會有一些您需要的軟件
包尚未被創建或是它們已被從新到(Incoming)目錄移出。
下列信息可能會對解決問題有所幫助:
下列軟件包有未滿足的依賴關系:
nvidia-docker2 : 依賴: docker-ce (= 18.03.1~ce~3-0~ubuntu) 但是它將不會被安裝
或docker-ee (= 18.03.1~ee~3-0~ubuntu) 但無法安裝它
E: 無法修正錯誤,因為您要求某些軟件包保持現狀,就是它們破壞了軟件包間的依賴關系。
原因:docker和nvidia-docker2以及Ubuntu系統版本不對應的原因,卸載所有docker,重新安裝正確的版本。
方法:
查看對應的版本命令:
apt-cache madison nvidia-docker2 nvidia-container-runtime
找到合適的版本安裝:安裝命令【使用的Ubuntu16.04內核版本是4.15.0-72-generic,但后面降級了,但好像有沒有降成功】
sudo apt-get install -y nvidia-docker2=2.0.3+docker18.06.3-3 nvidia-container-runtime=2.0.0+docker18.06.3-3
4、錯誤4:
執行docker run命令時報錯
Error response from daemon: oci runtime error: container_linux.go:346: starting container process caused "process_linux.go:
還是docker和Ubuntu內核版本問題,卸載docker重裝。升級內核或者降級docker。
升級內核:https://blog.csdn.net/u013431916/article/details/82530523
sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak【備份一下源文件(因為待會要替換掉,以免以后找不到)】
sudo vim /etc/apt/sources.list【修改文件】
在里面最后一行加入deb http://security.ubuntu.com/ubuntu trusty-security main,並保存(:wq)
sudo apt-get update【更新】
sudo apt-get install linux-image-extra-3.16.0-43-generic【找到想安裝的內核版本,安裝新內核】
dpkg -l | grep 3.16.0-43-generic【查看是否安裝成功】
sudo vim /etc/default/grub【編輯grub配置文件,指定新安裝的內核版本為當前使用的版本】
找到
GRUB_DEFAULT=0
修改為:
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.16.0-43-generic"
sudo update-grub【保存退出,然后執行以下命令更新 Grub 引導】
sudo reboot【更新完成后重啟系統】
uname -r【查看一下是否更換成功】
5、錯誤5:
執行命令sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi報錯:
docker: Error response from daemon: Unknown runtime specified nvidia.
原因:沒有將docker啟動
方法:
sudo systemctl daemon-reload
sudo systemctl restart docker