【WSL】Ubuntu 24.04 安装配置docker

news/2025/1/4 9:56:50/

继上一篇文章:【WSL】Ubuntu 22.04 安装配置docker

这次我在新搭建的台式机安装的WSL上,也安装一个docker,因为最近要开发TTS相关的东西。

参考

清华大学镜像站的这篇文章基本涵盖了所有的操作步骤,照着做就行了:Docker CE 软件仓库

安装

我的WSL版本:

WSL 版本: 2.3.26.0
内核版本: 5.15.167.4-1
WSLg 版本: 1.0.65
MSRDC 版本: 1.2.5620
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.26100.1-240331-1435.ge-release
Windows 版本: 10.0.26100.2605

ubuntu版本:

Ubuntu 24.04 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)

使用lsb_release -a查看版本代号:

Distributor ID: Ubuntu
Description:    Ubuntu 24.04 LTS
Release:        24.04
Codename:       noble

一开始整了一个乌龙,我所在的地方连接中科大镜像失败,所以不得不转投清华的镜像:

Err:1 https://mirrors.ustc.edu.cn/ubuntu oracular/main amd64 libgpg-error-l10n all 1.50-4Cannot initiate the connection to mirrors.ustc.edu.cn:443 (2001:da8:d800:95::110). - connect (101: Network is unreachable) Could not connect to mirrors.ustc.edu.cn:443 (202.38.95.110), connection timed out
Err:2 https://mirrors.ustc.edu.cn/ubuntu oracular/main amd64 libgpg-error0 amd64 1.50-4Cannot initiate the connection to mirrors.ustc.edu.cn:443 (2001:da8:d800:95::110). - connect (101: Network is unreachable)
Err:3 https://mirrors.ustc.edu.cn/ubuntu oracular/main amd64 libgcrypt20 amd64 1.11.0-6Cannot initiate the connection to mirrors.ustc.edu.cn:443 (2001:da8:d800:95::110). - connect (101: Network is unreachable)
Err:4 https://mirrors.ustc.edu.cn/ubuntu oracular/main amd64 libapt-pkg6.0t64 amd64 2.9.8Cannot initiate the connection to mirrors.ustc.edu.cn:443 (2001:da8:d800:95::110). - connect (101: Network is unreachable)
Err:5 https://mirrors.ustc.edu.cn/ubuntu oracular/main amd64 apt amd64 2.9.8Cannot initiate the connection to mirrors.ustc.edu.cn:443 (2001:da8:d800:95::110). - connect (101: Network is unreachable)

大概报一堆类似这样的错误。

然后实测即使是24.04ubuntu,依然可以用老方法修改镜像,也就是改/etc/apt/sources.list,替换成下面的就行了,记得备份(另外修改文件需要sudo,VS Code改不了,sudo code也不行,不清楚为什么)

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-proposed main restricted universe multiverse

WSL默认登录的用户不是root,所以下面的操作都是带sudo的。
如果你过去安装过 docker,先删掉:

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

首先安装依赖:

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

信任 Docker 的 GPG 公钥并添加仓库:

发行版

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

这一步卡了我很久,如果你也出现下面的报错:

W: GPG error: https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu noble InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
E: The repository 'https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu noble InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

这说明清华镜像的docker公钥在你电脑上没有写入成功,我当时的解决办法是:

  1. 切换到/etc/apt/sources.list.d下,删除docker.list
  2. 切换到/etc/apt/keyrings下,删除docker.ascdocker.gpg
  3. 重新执行上面的四步即可。

最后安装

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

测试

官方文档说可以通过下面这行运行一个容器看看docker效果:

sudo docker run hello-world

但是这个网络基本连不上:

Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

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

相关文章

12.31shell脚本

1.思维导图 2.练习 1>使用数组求出当前目录下.sh文件的个数 a.代码 #!/bin/bash arr(*.sh) echo ${#arr[*]}b.效果展示 2>使用数组求加目录下文件的个数 a.代码 #!/bin/bash cd ~ arr(*) echo ${#arr[*]}b.效果展示

MyBatisPlus完整技术汇总一

MyBatisPlus MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率官网:https://mp.baomidou.com/MyBatisPlus特性 无侵入:只做增强不做改变,不会对现有工程产生影响强大的…

在Linux上获取MS(如Media Server)中的RTP流并录制为双轨PCM格式的WAV文件

在Linux上获取MS(如Media Server)中的RTP流并录制为双轨PCM格式的WAV文件 一、RTP流与WAV文件格式二、实现步骤三、伪代码示例四、C语言示例代码五、关键点说明六、总结在Linux操作系统上,从媒体服务器(如Media Server,简称MS)获取RTP(Real-time Transport Protocol)流…

IDE 强大功能背后的 Language Server Protocol 详解

目录 LSP 中的核心概念 LSP 的主要功能 LSP 的工作原理 LSP 的设计理念 小结 IDE(Integrated Development Environment,集成开发环境)在软件开发过程中发挥着至关重要的作用,不仅提供了代码编辑的基本功能,还集成…

【Linux】Centos7下载npm

Index of /dist/v16.20.2/ (nodejs.org) 下载 wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.gz解压 sudo tar -zxvf node-v16.20.2-linux-x64.tar.gz 配置环境变量 sudo vim /etc/profile export NODE_HOME/usr/local/node-v16.20.2-linux-x64 ex…

HTML5实现好看的喜庆圣诞节网站源码

HTML5实现好看的喜庆圣诞节网站源码 前言一、设计来源1.1 主界面1.2 圣诞介绍界面1.3 圣诞象征界面1.4 圣诞活动界面1.5 圣诞热度界面1.6 圣诞纪念界面1.7 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看的喜庆圣诞节网站源码,圣…

整合下知识点哈-现下流行的数据库端口

目前市场主流数据库有oracle、mysql、postgresql、SqlServer2008,还有新的国产数据库达梦数据库等,以下只提供最常见的哈 oracle 默认端口:1521;默认用户:system;默认密码:manager(这…

git clone ssh 设置代理

Linux配置方法 编辑 ~/.ssh/config 文件 Host github.com Hostname github.com ProxyCommand nc -v -x 127.0.0.1:1080 %h %pwindows配置方法 编辑 C:\Users\当前用户名.ssh\config 文件 Host github.com Hostname github.com ProxyCommand connect -S 127.0.0.1:1080 %h %…