wsl2安装docker引擎(Install Docker Engine on Debian)

news/2025/2/12 4:35:15/

安装

1.卸载旧版本

在安装 Docker 引擎之前,您必须首先确保卸载任何冲突的软件包。

发行版维护者在他们的存储库。必须先卸载这些软件包,然后才能安装 Docker 引擎的正式版本。

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

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

此外,Docker引擎依赖项捆绑为一个捆绑包。如果你以前安装过,卸载它们以避免 与 Docker 引擎捆绑的版本冲突。

containerd runc containerd.io containerd 

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

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

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

卸载 Docker 时会自动删除存储的映像、容器、卷和网络

2.使用apt存储库安装

   (1).更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库:

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

   (2).添加 Docker 的官方 GPG 密钥:

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

   (3).使用以下命令设置存储库:

echo \"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  注意

如果您使用衍生发行版,例如 Kali Linux, 您可能需要替换此命令中预期 打印版本代号:

$(. /etc/os-release && echo "$VERSION_CODENAME")

   (4).更新包索引:apt

sudo apt-get update

3.安装 Docker 引擎

   (1).安装 Docker Engine、containerd 和 Docker Compose。

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

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

   (2).通过运行映像验证 Docker 引擎安装是否成功:hello-world

sudo docker run hello-world

到现在如果没有报错,说明已成功安装并启动 Docker 引擎。

4.升级Docker引擎

要升级Docker引擎,请按照https://docs.docker.com/engine/install/debian/#install-docker-engine

选择新版本,进行升级

5.卸载Docker引擎

   (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

下面是我在按照上面步骤进行安装时遇到的问题

按上面步骤安装完docker引擎之后,启动docker引擎会报以下错误

 1.首先去 /etc/init.d  看有没有docker的文件

cat docker

 2.去 测定/docker.log

  3.解决问题

sudo update-alternatives --config iptables

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

 4.启动docker

 至此,问题解决,成功启动

补充一点

使用systemctl命令管理docker报错

当你尝试使用 systemctl 命令来管理 Linux 系统上的服务的时候,如果系统中根本就没有使用 systemctl,而是(很可能)使用的 SysV init (sysvinit)命令,就会报错。

在 windows 中通过 WSL 使用的Debian,默认情况下系统使用的是 SysV 而不是 systemctl。当你使用 systemctl 命令(适用于有 systemd init 的系统)的时候,系统自然会报错。

那么怎样查看到底用的是哪个 init 系统呢?可以使用如下命令来检查 PID 为 1 的进程(即系统运行的第一个进程)名称:

ps -p 1 -o comm=

 它应该在输出中显示 init 或 sysv(或类似的东西)。如上图你看到的是 init,那么你的系统就没有使用 systemd,应该使用 init 命令。

其实systemctl命令和sysvinit 命令功能相同,要修复systemctl命令报错,最简单的方式就是不使用 systemctl 命令,而是使用 sysvinit 命令。

sysvinit 也不复杂,它与 systemctl 命令的语法相似。如下表格为两个命令的对比:


http://www.ppmy.cn/news/1024507.html

相关文章

【数据结构】二叉树常见题目

文章目录 前言二叉树概念满二叉树完全二叉树二叉搜索树(二叉排序树)平衡⼆叉搜索树存储⽅式 二叉树OJ二叉树创建字符串二叉树的分层遍历1二叉树的分层遍历2给定一个二叉树, 找到该树中两个指定节点的最近公共祖先二叉树搜索树转换成排序双向链表二叉树展开为链表根据一棵树的前…

C++文件类(整理自C语言中文网-全)

C文件类(文件流类)及用法详解 《C输入输出流》一章中讲过,重定向后的 cin 和 cout 可分别用于读取文件中的数据和向文件中写入数据。除此之外,C 标准库中还专门提供了 3 个类用于实现文件操作,它们统称为文件流类&…

自动测试框架airtest应用一:将XX读书书籍保存为PDF

一、Airtest的简介 Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的,计算机用户不需要…

Sqlite3简介

SQLite3 简介 SQLite3 是一种轻量级的嵌入式数据库引擎,被广泛应用于各种应用程序中,包括移动设备、桌面应用程序和嵌入式系统。它以其简单、高效和零配置的特点而受到开发者的喜爱。 以下是 SQLite3 的一些重要特点: 嵌入式数据库引擎&…

腾讯云服务器镜像操作系统大全_Linux_Windows清单

腾讯云CVM服务器的公共镜像是由腾讯云官方提供的镜像,公共镜像包含基础操作系统和腾讯云提供的初始化组件,公共镜像分为Windows和Linux两大类操作系统,如TencentOS Server、Windows Server、OpenCloudOS、CentOS Stream、CentOS、Ubuntu、Deb…

InnoDB文件物理结构解析4 - FIL_PAGE_INDEX

前文介绍了数据页的记录的遍历方式,接下来讨论如何将表记录一条一条的读取出来,前文提过一个表的主键索引在InnoDB中称为Clustered Key,而表其它的普通索引称为Secondary Key,他们记录的格式是不同的,我们先讨论Cluste…

商家如何低成本搭建声音人无人直播开展带货直播?

随着直播行业日渐火热,人工智能也开始逐渐渗透到这个领域。在前不久刚出现的AI数字人直播间已经成为一种创新的直播模式。而在这个领域里,声音人无人直播也逐渐展现出了自己的优势。那么,在AI数字人直播之后出现的声音人无人直播又有哪些优势…

SAP Fiori 问题收集

事务代码篇 启动工作台:/N/UI2/FLP 错误日志: /n/IWFND/ERROR_LOG 服务清单: /n/IWFND/MAINT_SERVICE 创建语义对象:/N/UI2/SEMOBJ 创建目录:/N/UI2/FLPD_CONF(cross-client)或 /N/UI2…