码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Windows 上修改 docker 的镜像文件存储位置(修改 WSL 文件映射)


    Windows 上修改 docker 的镜像文件存储位置(修改 WSL 文件映射)

    • 1、起因
    • 2、修改
      • 2.1 关闭 Docker Desktop
      • 2.2 备份镜像
      • 2.3 WSL 取消注册 docker-desktop-data
      • 2.4 镜像数据导回 WSL 并挂载到新路径
    • 3、验证
    • 4、附录

    1、起因

    一开始在 Windows 上安装了 docker 后,它默认是把镜像拉取保存到 C:\Users\<你当前用户>\AppData\Local\Docker\wsl\data\ 路径的 ext4.vhdx 文件下,当拉取的镜像越来越大时,C 盘比较小的同学就 hold 不住了,怎么在 Windows 上修改 docker 的镜像文件存储位置也就变的迫在眉睫。

    2、修改

    点击安装 Docker Desktop 后启动,会提示安装 WSL,如果不安装,启动不了 docker engine 服务。

    因为目前的 docker 依附 WSL 来进行文件映射,所以我们需要通过 wsl 来修改 docker 的文件映射(可理解为文件挂载)路径就行了。

    现在我们安装的都是WSL2,WSL2 模式下 docker-desktop-data 磁盘映像通常位于以下位置: C:\Users\<你当前用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx

    按照以下步骤将其重新定位到其他驱动器 or 目录,并保留所有现有的 Docker 数据。

    2.1 关闭 Docker Desktop

    首先,在任务栏右下角右键单击 Docker Desktop 图标关闭 Docker 桌面,选择退出 Docker 桌面,等一会 Docker 图标没了之后,就证明 Docker 完全关闭了,然后,打开命令提示符:

    wsl --list -v
    
    • 1

    我们就能能够看到,确保两个状态都已停止。

    在这里插入图片描述

    默认情况下,Docker Desktop for Window 会创建如下两个发行版(distro)
    C:\Users<你当前用户名>\AppData\Local\Docker\wsl
    docker-desktop (对应distro/ext4.vhdx)
    docker-desktop-data (对应data/ext4.vhdx)
    按官方说明提示:vhdx文件最大支持256G,超出大小会有异常。

    2.2 备份镜像

    将 docker-desktop-data 导出到文件中(备份 image 及相关文件),我是把他保存到 D 盘下,用的如下命令,你们可以根据自己需要修改路径:

    wsl --export docker-desktop-data "D:\\docker-desktop-data.tar"
    
    • 1

    2.3 WSL 取消注册 docker-desktop-data

    从 wsl 取消注册 docker-desktop-data,需注意 C:\Users\<你当前用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx 文件将被自动删除,命令如下:

    wsl --unregister docker-desktop-data
    
    • 1

    2.4 镜像数据导回 WSL 并挂载到新路径

    将导出的 docker-desktop-data 再导入回 wsl,并设置我们想要的路径,即新的镜像及各种 docker 使用的文件的挂载目录,我这里设置到 D:\docker\wsl,命令如下:

    wsl --import docker-desktop-data "D:\\docker\\wsl" "D:\\docker-desktop-data.tar" --version 2
    
    • 1

    命令执行完毕,就能再目录下看到文件了,这时次启动 Docker Desktop,可以正常工作了。

    3、验证

    修改前记录 C:\Users\<你当前用户名>\AppData\Local\Docker\wsl 目录文件大小,修改后再看一下该路径文件大小,可以看到变化(前提是还未修改前有拉取镜像,且镜像比较大),然后 docker pull 任意一个镜像(我下载了Ubuntu),再看 C:\Users\<你当前用户名>\AppData\Local\Docker\wsl 目录无变化,而 D:\\docker\\wsl (你修改的镜像挂载目录)增大。

    最后,如果在验证后一切没有问题,则可以删除 D:\docker-desktop-data.tar (前面备份的镜像文件),记住可不是 ext4.vhdx 文件,这可是重要文件,删除了 Docker Desktop 就打不开了。

    4、附录

    Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题 可参考:Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题

  • 相关阅读:
    面向对象实验二友元
    Liunx-05磁盘管理
    Python实现基于Optuna超参数自动优化的Catboost分类模型(CatBoostClassifier算法)项目实战
    初学Matlab第二天
    systemverilog中的输入输出系统函数
    memcmp函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )
    链路聚合-静态和动态区别
    PNAS:慢波振荡促进长程有效沟通:故障网络中记忆巩固的关键
    JAVA计算机毕业设计学习和分享做菜web系统Mybatis+源码+数据库+lw文档+系统+调试部署
    离散数学 学习 之 一阶逻辑基本概念 ( 四 )
  • 原文地址:https://blog.csdn.net/a6661314/article/details/128007347
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号