CentOS7安装 docker与nvidia-docker

文章目录

      • 一、docker
      • 二、docker与nvidia-docker 安装
          • 2.1 在线安装 docker与nvidia-docker 安装
          • 2.2 离线安装 docker与nvidia-docker 安装
            • 使用 tgz 压缩包安装
            • 使用 rpm 包安装
      • 三、Docker Compose

一、docker

docker 现阶段版本区分为 CE与 EE 。【详情点击】

docker-CE 安装清华镜像站:https://mirror.tuna.tsinghua.edu.cn/help/docker-ce/
docker hub 国内镜像加速地址:vim /etc/docker/daemon.json
修改配置文件: vim /etc/docker/daemon.json文件后,重新启动dockersystemctl restart docker

{
  "registry-mirrors" : [
    "http://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com",
    "registry.docker-cn.com"
  ],
  "insecure-registries" : [
    "registry.docker-cn.com",
    "docker.mirrors.ustc.edu.cn"
  ],
  "debug" : true,
  "experimental" : true
}

#======20200501可用=========
{
  "registry-mirrors" : [
    "https://hub-mirror.c.163.com"
  ]
}

二、docker与nvidia-docker 安装

官网安装教程:【点击】

2.1 在线安装 docker与nvidia-docker 安装
  • Docker官方为了简化流程,提供了一套便捷的安装脚本,在centos上可以使用脚本自动安装Docker CE:
    官方安装脚本:curl -sSL https://get.docker.com/ | sh
    阿里云安装脚本:curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/ docker-engine/internet | sh -
    DaoCloud脚本:curl -sSL https://get.daocloud.io/docker | sh

  • 手动安装:【安装教程1】、【安装教程2】、【安装教程3 使用国内镜像】

    #=============ubuntu安装流程=================
    # 系统更新
    $ sudo apt update
    $ sudo apt upgrade
    $ sudo apt autoremove
    # 安装系统依赖包
    $ sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg-agent \
        software-properties-common
    # 加入Docker信息库密钥
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
    # key确认
    $ apt-key list
    # 最后8位作为fingerprint参数
    $ sudo apt-key fingerprint 0EBFCD88
    # 将Docker信息库加入本地信息库当中
    $ sudo add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
       $(lsb_release -cs) \
       stable"
    # 查看OS采用核心号
    $ lsb_release -cs
    # 查看信息库加入的位置和内容
    $ cat /etc/apt/sources.list|grep docker
    
    # 系统再更新
    $ sudo apt update
    $ sudo apt upgrade
    # Docker安装
    $ apt show docker-ce
    $ sudo apt install docker-ce docker-ce-cli containerd.io
    # 校验安装
    $ docker help
    $ docker version
    $ sudo docker run hello-world
    
  • 安装nvidia-docker
    【官网方法】

    # 如果已经安装过nvidia-docker1.0,那么先卸载。
    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
    
    # 添加仓库
    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
    
    
    # 安装nvidia-docker2,重载Docker daemon configuration
    sudo apt-get install -y nvidia-docker2
    sudo pkill -SIGHUP dockerd
    
    # 测试一下是否安装成功
    docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
    
2.2 离线安装 docker与nvidia-docker 安装

安装docker有两种方式,一种是rpm包,另一种就是tgz压缩包,若是不需要docker-nvidia,你可以直接使用tgz安装,简单便捷。

若是之前安装过docker,则先删除

sudo yum remove nvidia-docker
sudo yum remove docker docker-client docker-common docker-engine docker-selinux

cd /usr/bin/
sudo rm -rf docker

cd /var/lib/
sudo rm -rf docker
使用 tgz 压缩包安装
  • 直接下载【请点击】
  • 上传至服务器随意位置,执行:
    $ tar xzvf /path/to/.tar.gz
    $ sudo cp docker/* /usr/bin/
    $ sudo nohup dockerd &
    $ sudo docker images  #查看是否安装成功
使用 rpm 包安装
  1. docker 下载地址【请点击】【container-selinux 请点击】下载如下这四个文件(你也可以选择最新版的):
    先安装系统核心依赖
    sudo yum install gcc gcc-g++ kernel-devel kernel-doc kernel-header

    docker-ce-cli-18.09.5-3.el7.x86_64.rpm
    containerd.io-1.2.5-3.1.el7.x86_64.rpm
    container-selinux-2.119.1-1.c57a6f9.el7.noarch.rpm
    docker-ce-selinux-17.03.3.ce-1.el7.noarch.rpm(可能与上一个包冲突,就不要安装了)
    docker-ce-18.09.5-3.el7.x86_64.rpm

  2. 相关依赖包下载【请点击】
    audit-libs-python-2.8.4-4.el7.x86_64.rpm
    python-IPy-0.75-6.el7.noarch.rpm
    checkpolicy-2.5-8.el7.x86_64.rpm
    policycoreutils-2.5-29.el7.x86_64.rpm
    policycoreutils-python-2.5-29.el7.x86_64.rpm
    setools-libs-3.3.8-4.el7.x86_64.rpm
    libseccomp-2.3.1-3.el7.x86_64.rpm
    libseccomp-devel-2.3.1-3.el7.x86_64.rpm
    libcgroup-0.41-20.el7.x86_64.rpm
    libsemanage-python-2.5-14.el7.x86_64.rpm

  3. 将上述文件打包上传至服务器,解压安装执行:
    rpm -ivh *.rpm

  4. docker 服务----启动与停止
    启动 docker 服务:sudo systemctl start docker
    停止 docker 服务:sudo systemctl stop docker
    重启 docker 服务:sudo systemctl restart docker

    开机启动:sudo systemctl enable docker
    服务状态:sudo systemctl status docker

  5. nvidia-docker 安装
    下载需要的安装包。【请点击:选择rpm/deb】
    libnvidia-container1-1.0.2-1.x86_64.rpm
    libnvidia-container-tools1-1.0.2-1.x86_64.rpm
    nvidia-container-runtime-hook-1.4.0-1.x86_64.rpm    【下载】
    nvidia-container-runtime-2.0.0-1.docker17.12.1.x86_64.rpm 【下载】
    nvidia-docker2-2.0.3-1.docker17.12.1.ce.noarch.rpm    【下载】
    安装启动 nvidia-docker
    sudo rpm -i nvidia-docker*.rpm    Centos/redhat 执行安装:
    sudo pkill -SIGHUP dockerd
    sudo systemctl start nvidia-docker   启动 NVIDIA Docker:
    sudo systemctl status nvidia-docker  查看 NVIDIA Docker 状态
    sudo systemctl enable nvidia-docker  加入 NVIDIA Docker 开机启动

三、Docker Compose

Docker Compose是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

  1. 下载安装包:【下载点击】
  2. 上传到服务器/usr/local/bin/目录下
  3. 执行安装:
    cd /usr/local/bin
    mv docker-compose-Linux-x86_64 docker-compose
    sudo chmod +x docker-compose
    docker-compose --version 查看版本是否安装成功

https://www.jianshu.com/p/6f9ce31b9aa7

参考与鸣谢:

docker 官方文档:https://docs.docker.com/engine/reference/commandline/run/
docker 版本区分 https://www.cnblogs.com/atuotuo/p/6668233.html
docker hub 镜像加速 https://www.cnblogs.com/lovesKey/p/11335619.html

安装报错 container-selinux >= 2.9:
https://blog.csdn.net/lq2016/article/details/87925225
https://blog.csdn.net/qq_41772936/article/details/81080284
https://www.cnblogs.com/python-wen/p/10614078.html

你可能感兴趣的:(docker)