当前位置: 首页 > news >正文

【Ubuntu】安装Docker

一、查看系统基本情况

1.1 查看系统版本


指令一

lsb_release -a
  • No LSB modules are available.
  • Distributor ID: Ubuntu
  • Description: Ubuntu 20.04.6 LTS
  • Release: 20.04
  • Codename: focal

指令二

cat /etc/lsb-release 
  • DISTRIB_ID=Ubuntu
  • DISTRIB_RELEASE=20.04
  • DISTRIB_CODENAME=focal
  • DISTRIB_DESCRIPTION=“Ubuntu 20.04.6 LTS”

1.2 查看系统架构

sudo dpkg  --print-architecture
  • arm64

1.3 查看容器架构

uname -m
  • aarch64

二、使用apt仓储进行安装

在新主机上首次安装Docker引擎之前,您需要设置Docker存储库。之后,您可以从存储库中安装和更新Docker。

2.1 设置Docker的apt仓库。

# 添加Docker的官方GPG密钥:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg# 将仓库添加到Apt源:
echo \"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

提示
如果您使用Ubuntu衍生发行版,如Linux Mint,则可能需要使用Ubuntu_CODENAME而不是VERSION_CODENAME。

2.2 安装Docker软件包。

2.2.1 安装最新版

要安装最新版本,请运行:

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

2.2.2 安装指定版本

要安装特定版本的Docker引擎,请首先在存储库中列出可用版本:

# 列出可用版本:
apt-cache madison docker-ce | awk '{ print $3 }'5:24.0.0-1~ubuntu.22.04~jammy
5:23.0.6-1~ubuntu.22.04~jammy
...

选择所需的版本并安装:

VERSION_STRING=5:24.0.0-1~ubuntu.22.04~jammy
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

2.3 通过运行 hello-world 镜像来验证Docker引擎安装是否成功。

sudo docker run hello-world

此命令下载测试映像并在容器中运行。当容器运行时,它会打印一条确认消息Hello from Docker!并退出。

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
70f5ac315c5a: Pull complete 
Digest: sha256:88ec0acaa3ec199d3b7eaf73588f4518c25f9d34f58ce9a0df68429c5af48e8d
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(arm64v8)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

提示
尝试在没有root用户的情况下运行时收到错误?
docker用户组存在,但不包含任何用户,这就是为什么需要使用sudo来运行docker命令。继续Linux postinstall,允许非特权用户运行Docker命令和其他可选的配置步骤。

更新Docker引擎

要升级Docker引擎,请按照安装说明的步骤2,选择要安装的新版本。

如果出现下面情况,安装更新源与系统不匹配,设置合适的源或手动安装`

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
没有可用的软件包 docker-ce,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到E: 软件包 docker-ce 没有可安装候选
E: 无法定位软件包 docker-ce-cli
E: 无法定位软件包 containerd.io
E: 无法按照 glob ‘containerd.io’ 找到任何软件包
E: 无法按照正则表达式 containerd.io 找到任何软件包

三、下载相关安装包手动安装

如果你不能使用Dockerapt仓库来安装Docker引擎,你可以下载发布的deb文件并手动安装。每次升级Docker引擎时,都需要下载一个新文件。

  1. 资源地址 https://download.docker.com/linux/ubuntu/dists/
  2. 在列表中选择你的Ubuntu 版本
  • 我的Ubuntu版本 - Codename: focal
  1. 选择子目录 pool/stable/ 并且选择架构 (amd64, armhf, ppc64el, arm64, 或者 s390x).
    如:我的系统是那么文件路径为:
  • 我的硬件架构 - arm64

针对我的系统Docker资源下载路径:

https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/arm64/

  1. 下载Docker Engine、CLI、containerd和Docker Compose包的以下deb文件:
    下载地址
  • containerd.io_1.3.7-1_arm64.deb
  • docker-ce-cli_19.03.133-0ubuntu-focal_arm64.deb
  • docker-ce_19.03.133-0ubuntu-focal_arm64.deb
  1. 安装.deb包。将以下示例中的路径更新为下载Docker软件包的位置。

方式一、sudo dpkg -i

sudo dpkg -i ./containerd.io_<version>_<arch>.deb \./docker-ce_<version>_<arch>.deb \./docker-ce-cli_<version>_<arch>.deb \./docker-buildx-plugin_<version>_<arch>.deb \./docker-compose-plugin_<version>_<arch>.deb

方式二、sudo apt-get install

sudo apt-get install /home/signway/download/containerd.io_1.3.7-1_arm64.deb
sudo apt-get install /home/signway/download/docker-ce-cli_19.03.13~3-0~ubuntu-focal_arm64.deb
sudo apt-get install /home/signway/download/docker-ce_19.03.13~3-0~ubuntu-focal_arm64.deb

注意 Docker守护进程会自动启动。

验证Docker是否安装完成

运行hello-world镜像来验证Docker引擎是否安装成功!

 sudo service docker start
sudo docker run hello-world

相关文章:

  • 【VRTK】【VR开发】【Unity】6-设置interactor和虚拟手
  • Python-pptx教程之二操作已有PPT模板文件
  • 鸿蒙4.0开发笔记之DevEco Studio如何使用Previewer窗口预览器(一)
  • S25FL256S介绍及FPGA实现思路
  • SELinux零知识学习十六、SELinux策略语言之类型强制(1)
  • java接收前端easyui datagrid传递的数组参数
  • Redis(集合Set和有序集合SortedSet)
  • 多svn仓库一键更新脚本分享
  • 电机开源驱动器基本操作与实现
  • Zookeeper的六个要点问题
  • Java获取Jar、War包路径,并生成可编辑修改的本地配置文件
  • levelDB之基础数据结构-Slice
  • 使用 React Flow 构建一个思维导图应用
  • 【2022改良版】学法减分助手PRO小程序源码
  • 深度学习(五)softmax 回归之:分类算法介绍,如何加载 Fashion-MINIST 数据集
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • const let
  • E-HPC支持多队列管理和自动伸缩
  • js操作时间(持续更新)
  • JS基础之数据类型、对象、原型、原型链、继承
  • LeetCode29.两数相除 JavaScript
  • Mysql5.6主从复制
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 聚类分析——Kmeans
  • 前端工程化(Gulp、Webpack)-webpack
  • 区块链将重新定义世界
  • 日剧·日综资源集合(建议收藏)
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 探索 JS 中的模块化
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 转载:[译] 内容加速黑科技趣谈
  • 自动记录MySQL慢查询快照脚本
  • linux 淘宝开源监控工具tsar
  • raise 与 raise ... from 的区别
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (C++)八皇后问题
  • (C语言)二分查找 超详细
  • (Git) gitignore基础使用
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (三)c52学习之旅-点亮LED灯
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转) Android中ViewStub组件使用
  • (转)大型网站架构演变和知识体系
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET BackgroundWorker
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径