WSL2 Ubuntu 24.04 离线安装 Docker 全流程

这里写目录标题

  • [1. 下载 Docker 官方离线安装包](#1. 下载 Docker 官方离线安装包)
  • [2. WSL 内离线安装 Docker](#2. WSL 内离线安装 Docker)
  • [3. 配置用户组权限](#3. 配置用户组权限)
  • [4. 启动 Docker 服务并验证](#4. 启动 Docker 服务并验证)
  • [5. 最终验证(本地镜像加载)](#5. 最终验证(本地镜像加载))
  • 后记:一些失败的尝试

在国内网络环境下,通过 apt 或 curl 一键脚本安装 Docker 极易出现网络 / 哈希校验错误,因此我们采用官方离线 .deb 包安装的方式,彻底绕开网络问题。

前置条件:

Windows 已安装并启用 WSL2,Ubuntu 是较高的版本。

1. 下载 Docker 官方离线安装包

先进入这个网址:Docker,然后选择以下3个文件,保存到本地:

  1. 🌋containerd.io(先装这个)文件名格式:containerd.io_<版本>_amd64.deb选版本号最大的那个,比如:containerd.io_1.7.24-1_amd64.deb
  2. 🌋docker-ce-cli(第二个装)文件名格式:docker-ce-cli_<版本>3-0ubuntu-noble_amd64.deb版本号要和 docker-ce 一致,比如:docker-ce-cli_27.3.13-0ubuntu-noble_amd64.deb
  3. 🌋docker-ce(最后装)文件名格式:docker-ce_<版本>3-0ubuntu-noble_amd64.deb和 cli 版本号完全一样,比如:docker-ce_27.3.13-0ubuntu-noble_amd64.deb

基于以上原则,我选择了下面红框里面的三个文件。


2. WSL 内离线安装 Docker

打开 WSL 终端,执行以下命令(路径需根据实际情况做调整):

bash 复制代码
# 1. 进入安装包目录
cd /mnt/d/Horizon_J6/docker_packages/
# 2. 按顺序安装3个包
sudo dpkg -i containerd.io_*.deb docker-ce-cli_*.deb docker-ce_*.deb
# 3. 修复依赖(安装过程中若提示依赖问题,执行此命令)
sudo apt --fix-broken install

3. 配置用户组权限

bash 复制代码
# 1. 将当前用户加入 docker 用户组
sudo usermod -aG docker $USER

⚠️ 必须执行:关闭当前 WSL 终端,在 PowerShell 中执行 wsl --shutdown 重启 WSL,再重新打开终端,权限才会生效!

4. 启动 Docker 服务并验证

bash 复制代码
# 1. 启动 Docker 服务
sudo service docker start

# 2. 验证安装是否成功
docker --version
# 输出类似:Docker version 29.4.3, build 055a478

输入第一个命令后,还需输入密码进行验证。然后输出版本号。

5. 最终验证(本地镜像加载)

选择本地一个镜像文件并加载(路径需根据实际情况做调整),有时候加载会比较慢,持续好几分钟,耐心等待即可。

bash 复制代码
cd /mnt/d/Horizon_J6/
docker load -i docker_open_explorer_ubuntu_22_j6_cpu_v3.8.1.tar.gz
docker images

安装并验证完毕!!!

后记:一些失败的尝试

先更新软件源:

bash 复制代码
# 1. 更新软件源
sudo apt update && sudo apt upgrade -y

运行,提示哈希有问题。

这是典型的Ubuntu 软件源同步不完整导致的哈希校验失败。将其替换为官方源。

bash 复制代码
# 备份旧的源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 替换为官方源(临时用官方源解决同步问题)
sudo tee /etc/apt/sources.list > /dev/null <<EOF
deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ noble-backports main restricted universe multiverse
EOF

# 更新源
sudo apt update

还是会报错。

再将其换到阿里云镜像源。

bash 复制代码
# 备份旧的源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 写入阿里云镜像源(适配 noble)
sudo tee /etc/apt/sources.list > /dev/null <<EOF
deb https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
EOF

# 临时允许非完全签名的源(解决Clearsigned文件错误)
sudo apt update --allow-releaseinfo-change


这次没有问题。

相关推荐
用户8055336980310 小时前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户0340952979110 小时前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Patrick_Wilson1 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy1 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭1 天前
运行你的第一个Docker容器
后端·docker·容器
Web3探索者2 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo2 天前
Linux系统中网线与USB网络共享冲突
linux
宋均浩2 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵3 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1113 天前
LM Studio Docker 部署——本地大模型一键启动
docker