方法 1:安装 docker.io(Kali 默认推荐)
Kali Linux 的包管理器中有一个名为 docker
的包,但它不是 Docker 容器引擎,而是另一个工具。因此,我们需要安装 docker.io
,这是 Kali 提供的 Docker 容器引擎版本。
更新包列表:
sudo apt update
安装 docker.io:
sudo apt install -y docker.io
启动并启用 Docker 服务:
sudo systemctl enable docker --now
验证安装:
检查 Docker 是否正确安装并运行:docker --version docker run hello-world
hello-world
容器会下载并运行,输出确认信息。(可选)添加用户到 Docker 组:
默认情况下,运行 Docker 命令需要sudo
。若想以非 root 用户运行 Docker,需将用户添加到docker
组:sudo usermod -aG docker $USER
然后注销并重新登录以应用更改:
newgrp docker
(可选)安装 Kali 工具:
如果需要使用 Kali 的 Docker 镜像(如kalilinux/kali-rolling
),可以拉取镜像并安装工具:docker pull docker.io/kalilinux/kali-rolling docker run -ti kalilinux/kali-rolling apt update && apt -y install kali-linux-headless
注意:docker.io
是 Kali 维护的版本,可能不是最新的 Docker 版本,但安装简单且与 Kali 兼容性较好。
方法 2:安装 Docker CE(官方 Docker 仓库)
如果需要最新版本的 Docker CE,可以从 Docker 官方仓库安装。Kali 是基于 Debian 的滚动发行版,因此需要选择对应的 Debian 版本(例如,截至 2023 年 12 月,Debian 稳定版为 bookworm)。
更新包列表并安装依赖:
sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
添加 Docker 官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
手动下载 GPG 密钥
既然 curl
下载 GPG 密钥失败,可以手动下载并保存:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo tee /etc/apt/keyrings/docker.asc
如果仍然报错,可以使用浏览器访问
https://download.docker.com/linux/debian/gpg
,将内容保存为文件(例如 docker.asc
),然后手动复制到 /etc/apt/keyrings/docker.asc
:
sudo mv ~/Downloads/docker.asc /etc/apt/keyrings/docker.asc
检查 curl
的 SSL/TLS 配置curl: (35)
错误可能与 SSL/TLS 协议相关。尝试以下方法:
- 使用
--insecure
跳过 SSL 验证(仅用于测试,不推荐生产环境):curl -fsSL --insecure https://download.docker.com/linux/debian/gpg | sudo tee /etc/apt/keyrings/docker.asc
- **更新
curl
和ca-certificates
**:sudo apt update sudo apt install -y curl ca-certificates
- 添加 Docker 仓库:
确定当前 Debian 稳定版(例如 bookworm):echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list
或者用阿里云镜像
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list
注意:将 bookworm
替换为当前 Debian 稳定版(可通过 lsb_release -cs
或查看 Docker 官方仓库确认)。
更新包列表并安装 Docker CE:
sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io
启动并启用 Docker 服务:
sudo systemctl enable docker --now
验证安装:
docker --version docker run hello-world
(可选)添加用户到 Docker 组:
同方法 1 步骤 5。
注意:Kali 是滚动发行版,可能会与 Docker 官方仓库的版本支持产生冲突。建议定期检查 Docker 官方文档以确保使用正确的 Debian 版本。
方法 3:使用 Docker 官方安装脚本
对于测试或开发环境,可以使用 Docker 提供的便利脚本自动安装:
- 下载并运行脚本:
curl -sSL https://get.docker.com | sed 's/kali-rolling/bookworm/g' | sudo sh
注意:此处直接替换 kali-rolling
为 bookworm
,避免仅修改 case
语句可能导致的遗漏。
调整 Kali 的版本映射(如有必要):
如果脚本无法识别 Kali 的版本(例如 kali-rolling
),可以手动指定 Debian 版本:
curl -sSL https://get.docker.com | sed 's/case "$dist_version" in/case "$dist_version" in kali-rolling)dist_version="bookworm";;/g' | sudo sh
- 使用备用镜像源
如果 Docker 官方服务器不可用,可以尝试从镜像站(如阿里云、清华大学)下载 GPG 密钥或 Docker 软件包:
- 修改安装脚本,使用镜像源(例如阿里云):
curl -sSL https://get.docker.com | sed 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' | sudo sh
注意:确保镜像源支持 Debian bookworm 版本。
重新运行安装脚本
在解决网络或 GPG 密钥问题后,重新运行安装脚本:
curl -sSL https://get.docker.com | sed 's/case "$dist_version" in/case "$dist_version" in kali-rolling)dist_version="bookworm";;/g' | sudo sh
启动并启用 Docker 服务:
sudo systemctl enable docker --now
验证安装:
docker --version docker run hello-world
(可选)添加用户到 Docker 组:
同方法 1 步骤 5。
安装 Docker Compose(可选)
如果需要使用 Docker Compose 来管理多容器应用,可以单独安装:
下载最新版本的 Docker Compose:
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
添加执行权限:
sudo chmod +x /usr/local/bin/docker-compose
验证安装:
docker-compose --version
注意:Docker Compose 在某些版本中可能需要单独安装,具体版本请参考 Docker 官方文档。
常见问题
- 问题 1:
apt update
报错,提示 Docker 仓库不可用(如 404 Not Found)。 - 问题 2:Docker 服务未启动。
- 解决:运行
sudo systemctl start docker
并检查状态:sudo systemctl status docker
。
- 解决:运行
- 问题 3:Kali Docker 镜像缺少工具。
安装脚本使用了阿里云镜像源(https://mirrors.aliyun.com/docker-ce/linux/debian
),但该镜像源不支持 kali-rolling
作为版本标识。Kali Linux 是基于 Debian 的滚动发行版,而 Docker 仓库通常只支持 Debian 的稳定版本(如 bookworm
或 bullseye
)。
- 脚本问题:虽然您使用了
sed
命令将kali-rolling
替换为bookworm
,但脚本可能在某些步骤中仍尝试使用原始的kali-rolling
版本,导致仓库配置错误。 - 阿里云镜像:阿里云的 Docker 镜像可能不支持所有 Debian 版本,或者配置不正确。
1. 检查并修复 Docker 仓库配置
错误表明 /etc/apt/sources.list.d/docker.list
中的仓库配置可能不正确。需要手动调整为正确的 Debian 版本(bookworm
)。
检查当前仓库配置:
查看/etc/apt/sources.list.d/docker.list
:cat /etc/apt/sources.list.d/docker.list
可能的输出类似于:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/debian kali-rolling stable
修复仓库配置:
将kali-rolling
替换为bookworm
:sudo sed -i 's/kali-rolling/bookworm/' /etc/apt/sources.list.d/docker.list
修复后,文件内容应类似于:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/debian bookworm stable
更新包列表:
sudo apt update
如果仍然报错,检查阿里云镜像是否支持
bookworm
(见步骤 2)。继续安装 Docker:
sudo apt install -y docker-ce docker-ce-cli containerd.io
验证安装:
docker --version docker run hello-world
2. 切换到 Docker 官方仓库
如果阿里云镜像持续失败,尝试使用 Docker 官方仓库:
移除现有 Docker 仓库配置:
sudo rm /etc/apt/sources.list.d/docker.list
添加 Docker 官方仓库:
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo tee /etc/apt/keyrings/docker.asc echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list
更新并安装:
sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io
启动 Docker 服务:
sudo systemctl enable docker --now docker run hello-world
3. 检查阿里云镜像支持
阿里云的 Docker 镜像(mirrors.aliyun.com/docker-ce
)可能不支持 bookworm
或配置有误。验证方法:
- 使用浏览器访问
https://mirrors.aliyun.com/docker-ce/linux/debian/dists/
,检查是否列出bookworm
。 - 如果不支持
bookworm
,尝试其他镜像源(如清华大学镜像):echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list sudo apt update
4. 使用 docker.io
作为替代方案
如果 Docker CE 安装持续失败,推荐使用 Kali 软件仓库中的 docker.io
,它更简单且与 Kali 兼容:
**安装
docker.io
**:sudo apt update sudo apt install -y docker.io
启动并启用 Docker 服务:
sudo systemctl enable docker --now
验证安装:
docker --version docker run hello-world
(可选)添加用户到 Docker 组:
sudo usermod -aG docker $USER newgrp docker
5. 重新运行修改后的安装脚本
如果您希望继续使用安装脚本,确保正确替换版本:
curl -sSL https://get.docker.com | sed 's/kali-rolling/bookworm/g' | sudo sh
注意:此处直接替换 kali-rolling
为 bookworm
,避免仅修改 case
语句可能导致的遗漏。
6. 检查网络和环境
确保网络正常且无代理或防火墙干扰:
- 测试网络:
ping -c 4 mirrors.aliyun.com curl -v https://mirrors.aliyun.com/docker-ce elements