Kali/Debian Linux 安装Docker Engine

0x01 卸载旧版本

在安装Docker Engine之前,需要卸载已经安装的可能有冲突的软件包。一些维护者在他们的仓库提供的Docker包可能是非Docker官方发行版,须先卸载这些软件包,然后才能安装Docker官方正式发行的Docker Engine版本。

要卸载的软件包包括:

powershell 复制代码
    docker.io
    docker-compose
    docker-doc
    podman-docker

此外,Docker Engine依赖于containerdrunc。Docker Engine将这些依赖捆绑为一个bundle:containerd.io。如果之前有安装了containerdrunc,请卸载它们以避免与Docker Engine捆绑的版本产生冲突。

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

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

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

存储在/var/lib/docker/中的映像、容器、卷和网络不会在卸载Docker时自动删除。如果你想开始一个纯净的安装,想要清理任何现有的数据,请阅读卸载Docker Engine部分。

0x02 使用apt仓库安装

在新主机上首次安装Docker Engine之前, 需要设置Docker的 apt仓库。之后就可以从apt仓库安装和更新Docker 。

  1. 设置Docker的apt仓库
bash 复制代码
# 添加 Docker 官方 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/debian/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/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

注意

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

bash 复制代码
(. /etc/os-release && echo "$VERSION_CODENAME")

将此部分替换为相应Debian发行版的代号, 例如bookworm

  1. 安装Docker包
    安装最新版本:
bash 复制代码
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装特定版本:

bash 复制代码
# 列出可用版本:
apt-cache madison docker-ce | awk '{ print $3 }'

5:24.0.0-1~debian.11~bullseye
5:23.0.6-1~debian.11~bullseye
...

从仓库中列出的可用版本中选择。

  1. 运行hello-world验证是否安装成功
bash 复制代码
sudo docker run hello-world

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

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

  1. 更新Docker Engine
    通过步骤2来安装较新版本

0x03 使用软件包安装

如果不能使用Docker的apt仓库来安装Docker Engine,可以下载你需要的版本的deb文件并手动安装它。你需要每次升级Docker Engine时都要下载一次新文件。

  1. 去浏览 https://download.docker.com/linux/debian/dists/
  2. 在列表中选择您的Debian版本。
  3. 转到pool/stable/并选择适用的体系架构(amd64, armhf、arm64或s390x)。
  4. 下载以下deb文件用于Docker Engine、CLI、containerd, Docker Compose软件包:
bash 复制代码
    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
  1. 安装.deb包。将以下示例中的路径更改为你下载Docker包的路径。
bash 复制代码
$ 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
  1. 运行 hello-world验证Docker Engine安装是否成功
bash 复制代码
$ sudo service docker start
$ sudo docker run hello-world

0x04 卸载Docker Engine

  1. 卸载Docker Engine, CLI, containerd, Docker Compose
bash 复制代码
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
  1. 主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有映像、容器和卷,请执行以下操作:
bash 复制代码
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
  1. 须手动删除其他已编辑的配置文件。
相关推荐
How_doyou_do19 分钟前
项目全栈实战-基于智能体、工作流、API模块化Docker集成的创业分析平台
运维·docker·容器
xq5148631 小时前
Linux系统下安装mongodb
linux·mongodb
柒七爱吃麻辣烫1 小时前
在Linux中安装JDK并且搭建Java环境
java·linux·开发语言
孤寂大仙v2 小时前
【Linux笔记】——进程信号的产生
linux·服务器·笔记
深海蜗牛2 小时前
Jenkins linux安装
linux·jenkins
愚戏师2 小时前
Linux复习笔记(三) 网络服务配置(web)
linux·运维·笔记
JANYI20183 小时前
嵌入式MCU和Linux开发哪个好?
linux·单片机·嵌入式硬件
熊大如如3 小时前
Java NIO 文件处理接口
java·linux·nio
晚秋大魔王3 小时前
OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——nettle库
linux·开源·harmonyos
农民小飞侠3 小时前
ubuntu 24.04 error: cannot uninstall blinker 1.7.0, record file not found. hint
linux·运维·ubuntu