Ubuntu 20.04安装Docker及相关设置

在配置和部署深度学习训练环境时,往往会遇到conda创建的虚拟环境不好用的情况,这时使用Docker就可以解决很多麻烦。

本篇遵循Docker官网的安装指导进行操作。

首先说明,Docker Engine和Docker Desktop是不同的,这里使用常用的Engine。

1、安装前的准备工作

(1)确保系统满足安装条件

(2)如果之前安装了旧版本,需要卸载。

(3)支持的存储驱动

2、安装方法

  • 多数情况下,推荐使用创建Docker仓库,从仓库进行安装,这样安装以及升级都方便。
  • 还可以通过下载deb文件包,然后手动安装,以后也需要手动升级,没有网络的情况下可以使用该方法。
  • 使用便捷脚本进行安装。
  • 使用Ubuntu自身仓库安装,可能并不总是最新版本。

(1)第一次安装需要创建Docker仓库,然后从仓库安装和更新Docker。

  • 更新apt 包索引,安装各种依赖包,从而允许apt通过HTTPS来使用仓库
sudo apt-get update
   sudo apt-get install ca-certificates curl gnupg lsb-release

Ubuntu 20.04安装Docker及相关设置
  • 添加Docker 官方GPG密钥
sudo mkdir -p /etc/apt/keyrings
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  • 使用以下命令来创建稳定仓库,
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntu 20.04安装Docker及相关设置

(2)安装Docker Engine

  • 更新apt包索引,安装最新版本的Docker Engine,containerd,Docker Compose。安装指定版本,请见官网(此处省略)。
sudo apt-get update  sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • 验证Docker已经正确安装完成,运行hello-world镜像。输出以下信息即说明安装OK。
sudo docker run hello-world

Ubuntu 20.04安装Docker及相关设置

Docker安装后自动运行,同时docker group也创建完成,但还没有用户被添加进去,现在需要用sudo运行docker命令。

查看已有镜像,sudo docker images

查看运行及停止的所有容器,sudo docker ps -a

Ubuntu 20.04安装Docker及相关设置

查看docker版本,docker -v

Ubuntu 20.04安装Docker及相关设置

3、安装完成后的相关设置

(1)作为非root用户管理Docker

Docker守护进程绑定在Unix socket上而不是TCP端口,默认情况下Unix socket由root所有,其他用户只能使用sudo来访问。如果不想每次都用sudo来运行docker命令,创建docker组,然后添加用户到组。

  • 创建docker组

sudo groupadd docker

  • 添加用户到docker组

sudo usermod -aG docker $USER

  • 退出并再登陆以使组成员被刷新。在Linux上,也可以运行以下命令来使改变生效。

newgrp docker

  • 验证不带sudo来运行docker命令

docker run hello-world

Ubuntu 20.04安装Docker及相关设置

如果最初在添加用户到docker组之前运行了Docker的命令行命令,可能会报错,这说明你的 ~/.docker/ 路径未用正确许可来创建。

Ubuntu 20.04安装Docker及相关设置

要修复该问题,可以移除 ~/.docker/ 路径(该路径会自动地重新创建,但任何自定义设定都会丢失),或者使用以下命令改变该路径的所有权和许可。

sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R

Enjoy it!

Original: https://www.cnblogs.com/booturbo/p/16313327.html
Author: BooTurbo
Title: Ubuntu 20.04安装Docker及相关设置

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/685079/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • .net自动分类算法【原创】

    目前自动分类算法是参考网上的思路和想法个人自主研发的。 当然互联网上有很多人采用不同的方式去解决自动分类问题,也有不同的算法和论文支持去做,但纵观自动分类这块工作是属于机器学习这块…

    技术杂谈 2023年7月24日
    054
  • dns ping

    :: :: Posted on2022-05-22 19:00 季枫 阅读(12 ) 评论() 编辑 https://tool.chinaz.com/dns/?type=1&amp…

    技术杂谈 2023年5月30日
    089
  • GIT使用说明

    1、Git入门教程 1.1:Git入门与使用 (一) Git介绍与安装 1.2:Git入门与使用 (二) Git相关命令的介绍与使用 1.3:Git入门与使用 (三) 使用GitH…

    技术杂谈 2023年6月21日
    078
  • 景深计算公式

    δ——容许弥散圆直径f——镜头焦距F——镜头的拍摄光圈值L——对焦距离ΔL1——前景深ΔL2——后景深ΔL——景深 从上图表公式(1)和(2)可以看出,后景深>前景深。 景深…

    技术杂谈 2023年5月31日
    0116
  • 如何把返回的datatable按某个字段 排序 升序或者降序

    如何把返回的datatable按某个字段 排序 升序或者降序 DataTable dtdata = GetXmlData(doc, “DetailList”…

    技术杂谈 2023年7月11日
    086
  • 嵌入式编程中使用qemu能够做什么?

    学习QEMU以后,为了拓展视野,才发现QEMU可以做这么多的事情。 仿真裸机或RTOS编程 qemu的是指令翻译进行的,所以可以根据实际的需求进行相应的裸机开发和学习,比如语言学习…

    技术杂谈 2023年6月1日
    087
  • 这 BUG,绝了

    上周只上了三天班,但我也丝毫不敢懈怠,BUG 更是一个也没少写。 看着满屏幕的 ERROR,我陷入沉思。为什么我写的代如此烂,无法像大牛们写的那般优雅? 越想越自卑,越想越抑郁。我…

    技术杂谈 2023年6月22日
    098
  • 溢出判断

    大量的安全漏洞是由于计算机算术运算的微妙细节引起的, 具体的C语言, 诸如符号数和无符号数之间转换, 算术运算的越界都会导致不可预知的错误和安全漏洞, 具体的案例数不胜数. 作为一…

    技术杂谈 2023年6月1日
    087
  • 自动安装驱动程序代码

    DWORD GetServiceInfFilePath_Passthru( LPTSTR lpFilename, DWORD nSize ) { // Get Path to Th…

    技术杂谈 2023年5月31日
    089
  • day4

    707.设计链表完整的设置链表的题目。插入可以先写,写完用在插表头和表位 if 0 <= index < self._count: # 计数-1 self._count…

    技术杂谈 2023年7月10日
    053
  • 加拿大,日本,墨西哥等认证标准更新

    2022年9月13日,IFT 批准移动电话因风险或紧急情况接收警报信息的技术规范(IFT-011-2022 第 3 部分) 。该标准规范了移动终端设备(手机和/或智能手机)通过蜂窝…

    技术杂谈 2023年6月21日
    084
  • java多线程基础学习

    一、多线程概述 1.1、进程和线程的概念 1.1.1、进程 1.1.2、线程 1.2、线程创建的方法 1.2.1、继承Thread类 1.2.2、重写Runnable接口 1.2….

    技术杂谈 2023年6月21日
    092
  • 从 posix_spawn() 函数窥探漏洞逃逸

    posix_spawn() 函数是用来在Linux上创建子进程的,头文件是 #include <spawn.h></spawn.h> ,语法如下: #inc…

    技术杂谈 2023年5月31日
    0101
  • Docker-数据卷管理

    Docker-数据卷管理 1.利用数据卷和数据容器管理数 管理Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器( DataVolumes Co…

    技术杂谈 2023年7月10日
    072
  • 世界顶级畅销书500本

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月31日
    082
  • SQL 外键知识

    当我们用主键唯一标识记录时,我们就可以在​ &#x200B;students&#x200B;​表中确定任意一个学生的记录: name other columns&#…

    技术杂谈 2023年7月11日
    058
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球