Nvidia-Docker安装(Ubuntu16.04,其它版本未验证)

栾和风
2023-12-01

1. 卸载旧版本docker

sudo apt-get remove docker docker-engine docker.io

2. 安装可选内核模块

从 Ubuntu 14.04 开始,一部分内核模块移到了可选内核模块包 ( linux-image-extra-* ) ,以减少内核软件包的体积。正常安装的系统应该会包含可选内核模块包,而一些裁剪后的系统可能会将其精简掉。 AUFS 内核驱动属于可选内核模块的一部分,作为推荐的 Docker 存储层驱动,一般建议安装可选内核模块包以使用 AUFS 。如果没有安装的话可以使用下面的命令安装

sudo apt-get update
sudo apt-get install  linux-image-extra-$(uname -r)  linux-image-extra-virtual

3. 安装Docker CE

由于发现新的安装方法,docker ce不用再装了,直接使用 sudo snap install docker但是该方法只适用于装docker,后面的nvidia-docker2安装会依然显示错误,看个人需求了
安装过程有很多源分为国内和官方,建议国内源,因为官方源国内连不上。

3.1 添加CA证书

由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用HTTPS 传输的软件包以及 CA 证书。

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
3.2 添加

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。

国内源

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

官方源

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
3.3 添加docker源

国内源

sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"

官方源

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
3.4 安装docker-ce

更新 apt 软件包缓存,并安装 docker-ce

sudo apt-get update
sudo apt-get install docker-ce
3.5 启动测试docker

启动

sudo systemctl enable docker
sudo systemctl start docker

测试docker是否安装成功

sudo docker run hello-world

4 系统设置

创建用户组

sudo groupadd docker

添加用户进入docker组,以便该用户可以使用docker

sudo gpasswd -a ${USER} docker

重启服务

sudo service docker restart

如果设置完成,万一还是需要sudo才能执行docker命令,则执行如下命令

newgrp - docker
sudo usermod -aG docker your_usernames

5 修改docker仓库和存放目录

该步骤可能会出现重启服务失败的可能,如果硬盘够大,网络够好,也可以不设置
打开daemon.json

cd /etc/ 
sudo vim docker/daemon.json 

修改如下,其中https://cwoel6s9.mirror.aliyuncs.com 为从阿里服务器申请的镜像地址,/data/docker 为存放目录

{
    "registry-mirrors": [
        "https://cwoel6s9.mirror.aliyuncs.com"
    ],
    "graph":"/data/docker",
    "storage-driver": "overlay",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}  

重启docker,并使用docker info查看修改信息

systemctl daemon-reload 
systemctl restart docker
docker info

6 nvidia-docker 安装

添加源

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update

安装nvidia-docker2软件包并重新加载Docker守护程序配置:

sudo apt-get install nvidia-docker2
sudo pkill -SIGHUP dockerd

安装完成后,当需要使用gpu时,使用nvidia-docker代替docker
ubuntu18.04安装有一些差异,可以使用下面代码安装:

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 && \
sudo apt-get install -y nvidia-docker2 && \
sudo pkill -SIGHUP dockerd

7 docker 日常使用

7.1镜像导出与导入
导出docker:
docker save -o java8.tar lwieske/java-8
导入docker:
docker load < java8.tar
7.2 docker使用

建立容器

docker run -it ubuntu:14.04 bash

查看容器

docker ps

建立后台运行容器使用-itd参数,此时再次进入该容器,使用docker ps查看,并执行如下进入容器

docker exec -it 775c7c9ee1e1 bash 

注:当需要使用gpu时,使用nvidia-docker代替docker

本人日常使用deepo镜像,并进行后台运行(-itd),端口映射(-p 4445:6006),本地目录映射至容器-v /data/mengzb/project:/home ,命名容器名称--name py36 ,使用gpu,nvidia-docker

nvidia-docker run -itd --name py36 -p 4444:22 -p 4445:6006 -p 4446:8888 -v /data/mengzb/project:/home ufoym/deepo
docker exec -it py36 bash 
 类似资料: