当前位置: 首页 > article >正文

Docker Desktop常见问题记录

1.docker pull报错,无法连接https://registry-1.docker.io/v2/

    报错信息如下:

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)

    解决办法是在Docker Desktop设置代理:

{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.1panel.live/"
  ],
  "insecure-registries": [],
  "debug": false,
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "builder": {
    "gc": {
      "enabled": true,
      "defaultKeepStorage": "120GB"
    }
  }
}

2.C盘被下载的docker镜像占满

    windows10上安装了Docker Desktop 3.6,选择安装了WSL2,下载过程中出现C盘被占满的问题。WSL2本质上是虚拟机, Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储,用户新下载的镜像都在默认的虚拟机文件“C:\Users\<当前登录用户名>\AppData\Local\Docker\wsl\ext4.vhdx”中管理,所以C盘会被撑爆。解决思路如下:

    2.1.关闭Docker Desktop

    打开window 命令窗口,执行:

C:\Users\XXXXXXX>wsl --shutdown

    2.2.查看默认分发、导出默认分发docker-desktop-data、注销默认分发docker-desktop-data

    分发docker-desktop-data上主要存储新下载的docker镜像

C:\Users\XXXXXXX>wsl --list -v
  NAME                   STATE           VERSION
* docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

C:\Users\XXXXXXX>wsl --export docker-desktop-data "D:\\docker-desktop-data\\docker-desktop-data.tar"

C:\Users\XXXXXXX>wsl --unregister docker-desktop-data
正在注销...

C:\Users\XXXXXXX>wsl --list -v
  NAME              STATE           VERSION
* docker-desktop    Stopped         2

    2.3.重新注册分发docker-desktop-data,更改其存储位置为目录"D:\\docker-desktop-data"

C:\Users\XXXXXXX>wsl --import docker-desktop-data "D:\\docker-desktop-data" "D:\\docker-desktop-data\\docker-desktop-data.tar" --version 2

C:\Users\XXXXXXX>wsl --list -v
  NAME                   STATE           VERSION
* docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

    执行完毕后,在目录D:\docker-desktop-data下看到ext4.vhdx说明更改成功,后期新下载的docker镜像都在这里维护。

3.docker镜像删后ext4.vhdx空间不释放

    Docker Desktop随着镜像下载的越来越多,原来的分发docker-desktop-data上镜像占据的磁盘空间越来越大,执行了“docker rmi imageId”和“docker image prune -a”后,仍然发现分发docker-desktop-data对应的磁盘文件“D:\docker-desktop-data\ext4.vhdx”文件不释放,D盘截图如下:

    根本原因:WSL2 本质上是虚拟机,所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件特点是可以自动扩容,但是一般不会自动缩容。所以删除文件后还需要我们手动进行压缩才能释放磁盘空间。

    3.1 确认自己分发docker-desktop-data文件所在位置

    这里在问题2中,我已经将默认的存储位置从“C:\Users\<当前登录用户名>\AppData\Local\Docker\wsl\ext4.vhdx”变更为“D:\docker-desktop-data\ext4.vhdx

    3.2 关闭Docker Desktop

    打开window 命令窗口,执行:

C:\Users\XXXXXXX>wsl --shutdown

C:\Users\XXXXXXX>wsl --list -v
  NAME                   STATE           VERSION
* docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

    确认分发docker-desktop-data已经处于停止状态。

     3.3 压缩.vhdx文件

    执行diskpart,打开 DiskPart 的命令窗口:

C:\Users\XXXXXXX>wsl --list -v
  NAME                   STATE           VERSION
* docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

C:\Users\XXXXXXX>wsl --shutdown

C:\Users\XXXXXXX>diskpart

    在新打开的 DiskPart 命令窗口中,执行select vdisk file="D:\docker-desktop-data\ext4.vhdx"选中分发docker-desktop-data对应存储,执行compact vdisk压缩:

Microsoft DiskPart 版本 10.0.19041.3636

Copyright (C) Microsoft Corporation.
在计算机上: LAP210845

DISKPART> select vdisk file="D:\docker-desktop-data\ext4.vhdx"

DiskPart 已成功选择虚拟磁盘文件。

DISKPART> compact vdisk

  100 百分比已完成

DiskPart 已成功压缩虚拟磁盘文件。

DISKPART> 

    压缩完毕后,空间得到释放,截图如下:


http://www.kler.cn/a/576153.html

相关文章:

  • 微信小程序+SpringBoot的单词学习小程序平台(程序+论文+讲解+安装+修改+售后)
  • 【计算机网络】计算机网络的性能指标——时延、时延带宽积、往返时延、信道利用率
  • Java 面试篇-SSM 框架专题(什么是 AOP?Spring 中事务时如何实现的?事务失效的场景?Spring 中循环引用怎么解决?Springboot 的自动配置原理?Spring 常见注解?)
  • BFS(八)515. 在每个树行中找最大值 中等
  • OpenCV计算摄影学(14)实现对比度保留去色(Contrast Preserving Decolorization)的函数decolor()
  • SpringBoot知识点及其源码解析(1)
  • 发行基础:热销商品榜单
  • 图形界面控件编程(iOS)
  • 机器学习——回归树
  • linux-mysql
  • C语言【进阶篇】之结构体 —— 从基础声明到复杂应用的进阶之路
  • 论文阅读笔记:TopoFR: A Closer Look at Topology Alignment on Face Recognition
  • CVE-2025-0392:JeeWMS graphReportController.do接口SQL注入漏洞复现
  • 图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image
  • 小米安全攻防工程师面试题解析
  • 第6章 定时器计数器
  • 代码随想录算法营Day59 | 寻找存在的路径, 冗余连接,冗余连接II
  • 用DeepSeek学Android开发:Android初学者遇到的常见问题有哪些?如何解决?
  • 分类学习(加入半监督学习)
  • c# 修改邮件附件名称