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


这次没有问题。

相关推荐
码农客栈6 分钟前
linux 交叉编译tslib
linux
鱼月半31 分钟前
两台电脑直连网络不通怎么办?
linux·网络协议
光电笑映1 小时前
网络通信基础:从协议分层到 Socket 编程预备
linux·运维·服务器·网络
酸菜。2 小时前
dw_apb_gpio总结
linux
wunaiqiezixin2 小时前
MIT 6.S081 file system 实验篇(lab9):Large files (moderate)
linux·unix·os·xv6·mit6.s081
GeW2 小时前
RHCE 考试通过率提升:核心考点、实验环境与排错技巧
linux
wdfk_prog3 小时前
ROS教程07:从 ros::start() 顺着源码读懂 Master、XML-RPC 与 Topic 注册发现
运维·缓存·docker·容器·ros
吴声子夜歌3 小时前
Shell编程实例——与解析相关的任务(二)
linux·运维·shell
mengge.cloud3 小时前
0917Docker 小白实验教程(理论+实操)
linux·服务器·网络·docker
Escalating_xu4 小时前
【内存管理发展史】从 8086 实模式到分页:CPU 如何把虚拟地址变成物理地址
linux·缓存