【docker】ubuntu20.04安装docker和nvidia-docker

docker安装

转载了一篇大佬的博客,写的非常详细,原文链接:https://blog.csdn.net/u010381752/article/details/114086343

以下为转载部分:

前言

首先登录官网观摩观摩:docker 安装

本文将详细介绍docker在Ubuntu20.04上的安装,以及docker命令的一些使用。例如一些常见的错误:

Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
invoke-rc.d: initscript docker, action "start" failed.
步骤

1. 干净的卸载掉你系统中的 docker,不要问我为什么知道。

1)删除步骤1,官网给出的两条命令,当然为了确保你删的干净点,请看第二条

$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
 
$ sudo rm -rf /var/lib/docker

2)摘抄于:https://blog.csdn.net/xbeethoven/article/details/107883970

1.常归删除操作
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
 
2. 删除docker其他没有没有卸载
dpkg -l | grep docker
dpkg -l |grep ^rc|awk ‘{print $2}|sudo xargs dpkg -P # 删除无用的相关的配置文件
 
3.卸载没有删除的docker相关插件(结合自己电脑的实际情况)
sudo apt-get autoremove docker-ce-*
 
4.删除docker的相关配置&目录
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
 
5.确定docker卸载完毕
docker --version

2.正式开始安装

2.1)跟着官网走,卸载掉你系统中较老版本的docker,不过经过上面的一波猛如虎的操作,基本到这里不会有啥残留了

$ sudo apt-get remove docker docker-engine docker.io containerd runc

2.2)安装相应的apt依赖

先更新一下
$ sudo apt-get update
 
安装相应的依赖
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

2.3)添加 Docker 的官方 GPG 密钥

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

2.4)验证密钥

$ sudo apt-key fingerprint 0EBFCD88

2.5)根据你不同的系统去设置一个稳定的仓库(根据你的系统选一个哦,不要每个都搞)

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

2.armhf
 
$ sudo add-apt-repository \
   "deb [arch=armhf] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
 
3.arm64
 
$ sudo add-apt-repository \
   "deb [arch=arm64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

2.6)再更新一次 apt

 $ sudo apt-get update

2.7)到目录中设置daemon.json文件(值得注意的是,如果是首次安装,理论上是不会有 cd /etc/docker 这个目录滴,所以如果你真的是第一次安装, 请跳过此步骤,等你下面步骤报错之后,嘿嘿这个目录就会有了,然后从头走一遍你就会发现,这部可以用了)

可以另起一个命令窗口 Ctrl + Alt + T
$ cd /etc/docker/
 
查看是否有 daemon.json 文件,没有就创建
$ ls
 
创建 daemon.json 文件
$ touch daemon.json
 
编辑文件
$ sudo gedit /etc/docker/daemon.json
 
在弹出来的文本框中收入下面这段,保存
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

注意:这里会有两种情况----》》》》》》》》》》》》》》》》》》》

2.8.1)一波顺利滴成功安装,下面的 hello-world 也是非常滴顺利敲出来,感觉一切良好

然而运行一波重启docker命令:$ sudo systemctl restart docker 发现报了下面这该死滴错误
这错误出来后,就完了,重启系统之后docker再也没能启动,恭喜你!!你还是没能逃脱2.7的命运,请从这里跳到文章最上面,再来一次,记得要看2.7了,嘿嘿。
2.8.2)执行安装步骤直接报错,错误提示:

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
containerd.io 已经是最新版 (1.4.3-1)。
将会同时安装下列软件:
  docker-ce-rootless-extras pigz slirp4netns
建议安装:
  aufs-tools cgroupfs-mount | cgroup-lite
下列【新】软件包将被安装:
  docker-ce docker-ce-cli docker-ce-rootless-extras pigz slirp4netns
升级了 0 个软件包,新安装了 5 个软件包,要卸载 0 个软件包,有 4 个软件包未被升级。
需要下载 0 B/75.2 MB 的归档。
解压缩后会消耗 321 MB 的额外空间。
您希望继续执行吗? [Y/n] Y
正在选中未选择的软件包 pigz。
(正在读取数据库 ... 系统当前共安装有 227693 个文件和目录。)
准备解压 .../archives/pigz_2.4-1_amd64.deb  ...
正在解压 pigz (2.4-1) ...
正在选中未选择的软件包 docker-ce-cli。
准备解压 .../docker-ce-cli_5%3a20.10.3~3-0~ubuntu-focal_amd64.deb  ...
正在解压 docker-ce-cli (5:20.10.3~3-0~ubuntu-focal) ...
正在选中未选择的软件包 docker-ce。
准备解压 .../docker-ce_5%3a20.10.3~3-0~ubuntu-focal_amd64.deb  ...
正在解压 docker-ce (5:20.10.3~3-0~ubuntu-focal) ...
正在选中未选择的软件包 docker-ce-rootless-extras。
准备解压 .../docker-ce-rootless-extras_5%3a20.10.3~3-0~ubuntu-focal_amd64.deb  ...
正在解压 docker-ce-rootless-extras (5:20.10.3~3-0~ubuntu-focal) ...
正在选中未选择的软件包 slirp4netns。
准备解压 .../slirp4netns_0.4.3-1_amd64.deb  ...
正在解压 slirp4netns (0.4.3-1) ...
正在设置 slirp4netns (0.4.3-1) ...
正在设置 docker-ce-cli (5:20.10.3~3-0~ubuntu-focal) ...
正在设置 pigz (2.4-1) ...
正在设置 docker-ce (5:20.10.3~3-0~ubuntu-focal) ...
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
invoke-rc.d: initscript docker, action "start" failed.
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Thu 2021-02-25 15:11:03 CST; 4ms ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
    Process: 26894 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
   Main PID: 26894 (code=exited, status=1/FAILURE)
dpkg: 处理软件包 docker-ce (--configure)时出错:
 已安装 docker-ce 软件包 post-installation 脚本 子进程返回错误状态 1
dpkg: 依赖关系问题使得 docker-ce-rootless-extras 的配置工作不能继续:
 docker-ce-rootless-extras 依赖于 docker-ce;然而:
  软件包 docker-ce 尚未配置。
 
dpkg: 处理软件包 docker-ce-rootless-extras (--configure)时出错:
 依赖关系问题 - 仍未被配置
因为错误消息指示这是由于上一个问题导致的错误,没有写入 apport 报告。
                                                                    正在处理用于 man-db (2.9.1-1) 的触发器 ...
正在处理用于 systemd (245.4-4ubuntu3.4) 的触发器 ...
在处理时有错误发生:
 docker-ce
 docker-ce-rootless-extras
E: Sub-process /usr/bin/dpkg returned an error code (1)

恭喜你!!你依然是没能逃脱2.7的命运,请从这里跳到文章最上面,再来一次,记得要看2.7了,嘿嘿。
2.9)运行 hello-world

sudo docker run hello-world

nvidia-docker安装

我是在虚拟机中安装的docker,手头并没有ubuntu系统的带有GPU的设别,这部分内容暂时搁置。后续的安装内容,参考我同门的博客和nv的官方文档。
博客:CAM项目的Docker下Python环境准备(GPU版)
文档:nvidia/container-toolkit/install-guide

你可能感兴趣的:(docker,容器,运维,深度学习,GPU环境配置)