Docker(一):Docker(NVIDIA-Docker)安装

Docker(NVIDIA-Docker)安装

一、Docker简介

  docker是一种容器技术,是直接运行在操作系统内核之上的用户空间。因此,也被称为“操作系统级虚拟化”,可以让多个独立的用户空间运行在同一台宿主机上。由于“客居”于操作系统,docker容器只能运行与底层宿主机相同或者相似的操作系统。docker容器被认为是精益技术,因为容器需要的开销有限,和传统虚拟化以及半虚拟化相比,容器不需要模拟层(emulation layer)和管理层(hypervisor layer),而是使用操作系统的系统调用接口。这降低了运行单个容器所需的开销,也使得宿主机中可以运行更多的容器。docker容器技术有以下特点:①上手快;②职责的逻辑分类;③ 快速高效的开发生命周期;④鼓励使用面向服务的架构。

  Docker是一个客户端-服务器(C/S)架构程序。Docker客户端只需要向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具Docker以及一整套RESTful API。你可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。

  Docker可以帮助你构建和部署容器,你只需要把自己的应用程序或者服务打包放进容器即可。容器是基于镜像启动起来的,容器中可以运行一个或多个进程。我们可以认为,镜像是Docker生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。  容器基于镜像启动,一旦容器启动完成后,我们就可以登录到容器中安装自己需要的软件或者服务。

  Docker镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引导系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker容器启动是需要的一些文件,而这些文件就可以称为Docker镜像。

二、Docker及NVIDIA-Docker的安装

 一)Docker CE安装(基础安装:在NVIDIA Docker安装之前)

官方:https://docs.docker.com/install/linux/docker-ce/ubuntu/

Docker的安装有三种方式:(1)通过建立Docker远程仓库并从仓库安装,以便于安装与升级任务(官方推荐);(2)下载安装文件(.deb文件),离线手动安装Docker;(3)在测试与开发环境中,一些用户选择使用自动化脚本安装docker。

1、通过建立仓库安装Docker

      1)卸载旧版本

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

      2)更新apt索引

sudo apt-get update

     3)安装三方包使得apt能够通过http使用仓库

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

     4)添加Docker的官方GPG秘钥

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

     5) 通过查找指纹秘钥的最后八个字符确认现在已经拥有指纹秘钥9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

 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) <[email protected]>
sub   rsa4096 2017-02-22 [S]

7) 现在正式开始安装,同样更新apt索引

sudo apt-get update

8)安装最新版本的Docker CE

sudo apt-get install docker-ce docker-ce-cli containerd.io

9)安装特定版本Docker CE

要安装特定版本的Docker CE则需要列出仓库中现有的版本。

apt-cache madison docker-ce
docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 18.06.1~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  docker-ce | 18.06.0~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  ...

接下来安装你想要安装的版本,比如5:18.09.1~3-0~ubuntu-xenial

sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

10)安装完成后,验证是否安装成功

sudo docker run hello-world
为了后续使用的时候不再使用sudo,需要加入用户组以获得root权限
sudo groupadd docker
sudo usermod -aG docker $USER
docker run hello-world(前面没有了sudo)

2、离线安装文件安装Docker

   这种方式安装貌似还更加简洁,但是如果你需要升级版本则需要重新下载新版本安装文件,卸载之前的版本。

  1)去官网https://download.docker.com/linux/ubuntu/dists/

进入目录pool/stable/选择和你的ubuntu版本对应的安装文件,有这几个选择:amd64, armhf, arm64, ppc64el, or s390x,下载对应的.deb安装文件。

 2)下载号以后运行如下命令安装:

sudo dpkg -i /path/to/package.deb

3)验证安装成功与否

sudo docker run hello-world

3、通过脚本安装Docker (官方不推荐适用于生产环境)

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker your-user

二)、NVIDIA Docker 安装

参考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
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:9.0-base nvidia-smi
注意:安装完NVIDIA Docker 之后,运行docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi可能会如下错误而无法正常运行:

docker: Error response from daemon: Unknown runtime specified nvidia.   解决办法:

Step1:Systemd drop-in file
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


Step2:Daemon configuration file

sudo tee /etc/docker/daemon.json <<EOF
{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}
EOF
sudo pkill -SIGHUP dockerd

至此Docker及NVIDIA Docker安装完结!

 

猜你喜欢

转载自blog.csdn.net/ouyangfushu/article/details/88561631