无桌面版docker在Ubuntu系统上安装

目录

注意

系统要求

卸载旧版本

安装

使用apt存储库安装

1. 设置 Docker 的apt存储库。

2. 安装Docker软件包

3. 通过运行镜像来验证Docker Engine安装是否成功 hello-world。

从包中安装

1. 进入 https://download.docker.com/linux/ubuntu/dists/。

2. 在列表中选择您的 Ubuntu 版本。

3. 转至pool/stable/并选择适用的架构(amd64、 armhf、arm64或s390x)。

4. deb下载Docker 引擎、CLI、containerd 和 Docker Compose 软件包的以下文件:

5. 安装.deb软件包。将以下示例中的路径更新为下载 Docker 软件包的位置。

6. 通过运行镜像来验证Docker Engine安装是否成功 hello-world。

使用便捷脚本安装

安装预发行版

卸载Docker Engine

1. 卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包:

2. 主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有映像、容器和卷:


注意

如果您使用 ufw 或 firewalld 来管理防火墙设置,请注意,当您使用 Docker 公开容器端口时,这些端口会绕过您的防火墙规则。

系统要求

要安装 Docker Engine,您需要以下 Ubuntu 版本之一的 64 位版本:

  • Ubuntu 曼蒂克 23.10
  • Ubuntu 农历 23.04
  • Ubuntu Jammy 22.04 (LTS)
  • Ubuntu Focal 20.04 (LTS)

适用于 Ubuntu 的 Docker 引擎与 x86_64(或 amd64)、armhf、arm64、s390x 和 ppc64le (ppc64el) 架构兼容。

卸载旧版本

在安装 Docker Engine 之前,您需要卸载所有冲突的软件包。

Distro 维护者在 APT 中提供 Docker 软件包的非官方发行版。您必须先卸载这些软件包,然后才能安装正式版的 Docker Engine。

要卸载的非官方软件包有:

  • docker.io
  • docker-compose
  • docker-compose-v2
  • docker-doc
  • podman-docker

此外,Docker Engine 依赖于containerdrunc。Docker 引擎将这些依赖项捆绑为一个捆绑包:containerd.io. 如果您之前安装过containerdrunc,请卸载它们以避免与 Docker Engine 捆绑的版本冲突。

运行以下命令卸载所有冲突的包:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

apt-get可能会报告您没有安装这些软件包。

/var/lib/docker/卸载 Docker 时,不会自动删除存储的映像、容器、卷和网络。如果您想从全新安装开始,并且希望清理任何现有数据,请阅读 卸载 Docker 引擎部分。

安装

您可以根据需要以不同的方式安装 Docker Engine:

  • Docker Engine 与Linux 版 Docker Desktop捆绑在一起 。这是最简单、最快的入门方法。

  • 从Dockerapt存储库设置并安装 Docker 引擎 。

  • 手动安装并手动管理升级。

  • 使用方便 的脚本。仅建议用于测试和开发环境。

使用apt存储库安装

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

1. 设置 Docker 的apt存储库。

# Add Docker's official GPG key:
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

# Add the repository to Apt sources:
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

2. 安装Docker软件包

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3. 通过运行镜像来验证Docker Engine安装是否成功 hello-world

sudo docker run hello-world
  1. 此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条确认消息并退出。

您现在已经成功安装并启动了 Docker Engine。

从包中安装

如果您无法使用 Docker 的apt存储库来安装 Docker Engine,您可以下载deb适合您的版本的文件并手动安装。每次升级 Docker Engine 时都需要下载新文件。

1. 进入 https://download.docker.com/linux/ubuntu/dists/。

2. 在列表中选择您的 Ubuntu 版本。

3. 转至pool/stable/并选择适用的架构(amd64、 armhfarm64s390x)。

4. deb下载Docker 引擎、CLI、containerd 和 Docker Compose 软件包的以下文件:

  • 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

5. 安装.deb软件包。将以下示例中的路径更新为下载 Docker 软件包的位置。

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

Docker 守护进程自动启动。

6. 通过运行镜像来验证Docker Engine安装是否成功 hello-world

sudo service docker start
sudo docker run hello-world

使用便捷脚本安装

Docker 在https://get.docker.com/提供了一个方便的脚本在新打开以非交互方式将 Docker 安装到开发环境中。不建议在生产环境中使用便利脚本,但它对于创建适合您的需求的配置脚本很有用。另请参阅 使用存储库安装步骤,了解使用包存储库安装的安装步骤。该脚本的源代码是开源的,您可以在 docker-installGitHub 上的存储库中找到它在新中打开。

在本地运行脚本之前,请务必先检查从互联网下载的脚本。安装之前,请熟悉便利脚本的潜在风险和限制:

  • 该脚本需要root权限sudo才能运行。
  • 该脚本尝试检测您的 Linux 发行版和版本,并为您配置包管理系统。
  • 该脚本不允许您自定义大多数安装参数。
  • 该脚本会安装依赖项和建议,而不要求确认。这可能会安装大量软件包,具体取决于主机的当前配置。
  • 默认情况下,该脚本会安装最新稳定版本的 Docker、containerd 和 runc。使用此脚本配置计算机时,可能会导致 Docker 主要版本意外升级。在部署到生产系统之前,始终在测试环境中测试升级。
  • 该脚本并非旨在升级现有的 Docker 安装。使用脚本更新现有安装时,依赖项可能无法更新到预期版本,从而导致版本过时。

提示:运行前预览脚本步骤

您可以运行脚本,并选择--dry-run了解脚本在调用时将运行哪些步骤:

<span style="background-color:#ffffff"><code class="language-console"><span style="color:#8f5902">$</span> curl -fsSL https://get.docker.com -o get-docker.sh
<span style="color:#8f5902">$</span> sudo sh ./get-docker.sh --dry-run
</code></span>

本示例从https://get.docker.com/下载脚本 在新中打开并运行它以在 Linux 上安装 Docker 的最新稳定版本:

<span style="color:#000000"><span style="background-color:#f9f9fa"><span style="background-color:#ffffff"><code class="language-console"><span style="color:#8f5902">$</span> curl -fsSL https://get.docker.com -o get-docker.sh
<span style="color:#8f5902">$</span> sudo sh get-docker.sh
<span style="color:#000000">Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
</span><span style="color:#000000"><...>
</span></code></span></span></span>

您现在已经成功安装并启动了 Docker Engine。该docker 服务在基于 Debian 的发行版上自动启动。在RPMCentOS、Fedora、RHEL 或 SLES 等基础发行版上,您需要使用适当的systemctlservice命令手动启动它。正如消息所示,默认情况下非 root 用户无法运行 Docker 命令。

安装预发行版

Docker 还在 https://test.docker.com/提供了一个方便的脚本在新中打开在 Linux 上安装 Docker 的预发行版。此脚本与 处的脚本相同get.docker.com,但将您的包管理器配置为使用 Docker 包存储库的测试通道。测试通道包括 Docker 的稳定版和预发行版(测试版、候选版)。使用此脚本可以尽早访问新版本,并在稳定版本发布之前在测试环境中对其进行评估。

要从测试通道在 Linux 上安装最新版本的 Docker,请运行:

curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh

卸载Docker Engine

1. 卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包:

sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

2. 主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有映像、容器和卷:

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/211165.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里云MySQL从 2003->1251->1396

目的 由于需要在阿里云的实例中装MySQL数据库&#xff0c;安装前期&#xff08;本地访问&#xff09;还是挺顺利的&#xff0c;但是到了远程连接的时候&#xff0c;却出现了一系列的Bug&#xff0c;以为是没有 实名认证没有备案 的原因导致的&#xff0c;但是后来…

在Spring Boot中使用@Async实现一个异步调用

在使用异步注解之前&#xff0c;我们需要先了解&#xff0c;什么是异步调用&#xff1f; 异步调用对应的事同步调用&#xff0c;同步调用是值程序按照我们定义的顺序依次执行&#xff0c;每一行程序都必须等待上一行的程序执行完成之后才执行&#xff0c;而异步是指在顺序执行…

动态规划------方法汇总

核心&#xff1a; 状态定义 状态转移方程 启发思路&#xff08;两种情况&#xff09;&#xff1a;选 或 不选 / 选哪个 DP三步&#xff1a;先写回溯&#xff0c;时间复杂度 指数级别&#xff1b;递归的过程中会重复计算&#xff0c;要保存计算结果&#xff0c;递归搜索…

uniapp是否可以用elementUI等前端UI库、使用步骤以及需要注意的问题

文章目录 uniapp是否可以用elementUI等前端UI库使用方法和步骤问题如何解决 uniapp是否可以用elementUI等前端UI库 在PC端开发uniapp&#xff0c;可以用elementUI&#xff0c;因为elementUI就是PC端的。 在使用uniapp&#xff0c;选择vue2.0时&#xff0c;实测可以用nodejs16的…

Linux部署HDFS集群

&#xff08;一&#xff09;VMware虚拟机中部署 ps、其中node1、node2、node3替换为自己相应节点的IP地址&#xff0c;或者host文件中配置过的主机名&#xff0c;或者看前置准备 或者查看前置准备&#xff1a;Linux部署HDFS集群前置准备 1.下载压缩包 https://www.apache.or…

管理类联考-性质

性质 ——性质—— 一、是什么 &#xff08;1&#xff09;本质&#xff1a;判断一定范围内的对象是否具备某个性质的命题就是性质命题&#xff08;直言命题&#xff09;。直言命题是断定事物/对象是否具有某种性质的命题。直言命题在结构上由主项、谓项、联项和量项组成。 &am…

对Spring框架的一些总结

对Spring框架的一些总结 在文章开头我真心推荐大家一个优秀的编程老师&#xff1a;孙帅老师(孙哥suns)&#xff0c;孙帅老师在哔哩哔哩的Spring5教学视频时长接近33个小时&#xff0c;从0基础到一步一步手把手的教你抽丝剥茧分析Spring框架的所有知识&#xff0c;孙帅老师的教…

打印元素绘制协议Java实现

我一直提倡的面向接口和约定编程&#xff0c;而打印元素绘制协议一直是我推荐的打印实现方式&#xff0c;我以前只是强调按打印元素绘制协议输出数据就行了&#xff0c;有实现程序按协议控制打印&#xff0c;说是可以用任何语言实现客户端程序而不影响打印业务&#xff0c;那么…

《opencv实用探索·八》图像模糊之均值滤波简单理解

1、前言 什么是噪声&#xff1f; 该像素与周围像素的差别非常大&#xff0c;导致从视觉上就能看出该像素无法与周围像素组成可识别的图像信息&#xff0c;降低了整个图像的质量。这种“格格不入”的像素就被称为图像的噪声。如果图像中的噪声都是随机的纯黑像素或者纯白像素&am…

【动态规划】LeetCode-91.解码方法

&#x1f388;算法那些事专栏说明&#xff1a;这是一个记录刷题日常的专栏&#xff0c;每个文章标题前都会写明这道题使用的算法。专栏每日计划至少更新1道题目&#xff0c;在这立下Flag&#x1f6a9; &#x1f3e0;个人主页&#xff1a;Jammingpro &#x1f4d5;专栏链接&…

leetcode-160-相交链表(C语言实现)

题目&#xff1a; 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;…

Leetcode226. 翻转二叉树

文章目录 题目介绍题目分析解题思路边界条件&#xff1a;节点为空时返回空子问题&#xff1a;交换左右子节点 整体代码 题目介绍 题目分析 题目要求我们将树中每个节点的左右子节点全部交换,最后返回交换后的树的根节点。 解题思路 这题是比较常见的递归&#xff0c;直接找边…

LangChain 18 LangSmith监控评估Agent并创建对应的数据库

LangChain系列文章 LangChain 实现给动物取名字&#xff0c;LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储&#xff0c;读取YouTube的视频文本搜索I…

最多不一定最好,只有适合的才是最好的!电脑的内存多大才是合理的

RAM&#xff0c;或称随机存取存储器&#xff0c;是最好的笔记本电脑和最好的电脑最重要的组成部分之一。硬盘驱动器&#xff08;HDD&#xff09;或固态驱动器&#xff08;SSD&#xff09;存储可以被视为电脑的长期内存&#xff0c;内存是其短期内存。内存可以跟踪后台运行的应用…

背包9讲系列2-完全背包问题

一、前言 又到周末了&#xff0c;这几天可以腾出时间来把背包系列的其他内容好好肝一肝&#xff0c;本次介绍的是完全背包问题&#xff0c;之前的系列内容请查看&#xff1a; 背包9讲系列1-01背包问题 二、完全背包 2.1 问题描述 有n个物品和一个容量为capacity的背包&…

误用STM32串口发送标志位 “USART_FLAG_TXE” “USART_FLAG_TC”造成的BUG

当你使用串口发送数据时是否出现过这样的情况&#xff1a; 1.发送时第一个字节丢失。 2.发送时出现莫名的字节丢失。 3.各种情况字节丢失。 1.先了解一下串口发送的流程图&#xff08;手动描绘&#xff09;&#xff1a; 可以假想USART_FLAG_TXE是用于检测"弹仓"&…

C++11——initializer_list

initializer_list的简介 initializer_list是C11新出的一个类型&#xff0c;正如类型的简介所说&#xff0c;initializer_list一般用于作为构造函数的参数&#xff0c;来让我们更方便赋值 但是光看这些&#xff0c;我们还是不知道initializer_list到底是个什么类型&#xff0c;…

关于标准库中的vector - (涉及迭代器失效,深浅拷贝,构造函数,内置类型构造函数,匿名对象)

目录 关于vector vector中的常见接口 vector常见接口的实现 迭代器失效 关于深浅拷贝 关于vector 关于vector的文档介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元…

零售数字化“逆熵”的6项原则和8种能力建设|ShopeX徐礼昭

作者&#xff1a;徐礼昭 来源&#xff1a;《三体零售逆熵法则》节选 旧的规则与秩序被打破&#xff0c;无序成为常态 新时代洪流裹挟冲击着传统零售 无序带来的“熵增”侵蚀企业生命 所有人都在不确定性中寻找确定 数字化如何助力企业铸就「反熵增」神器&#xff1f; 如何…

【交换排序 简单选择排序 堆排序 归并排序】

文章目录 交换排序简单选择排序堆排序归并排序 交换排序 冒泡排序的算法分析&#xff1a; 冒泡排序最好的时间复杂度是O&#xff08;n&#xff09;冒泡排序最好的时间复杂度是O&#xff08;n平方&#xff09;冒泡排序平均时间复杂度为O&#xff08;n的平方&#xff09;冒泡排…