Windows10系统下Docker默认存储位置更改方案

 更新时间:2023年08月30日 09:13:07   作者:指点河山  
这篇文章主要给大家介绍了关于Windows10系统下Docker默认存储位置更改方案的相关资料,在Docker中存储路径是一个重要的话题,文中通过图文介绍的非常详细,需要的朋友可以参考下

前言

由于所用的ThinkPad T480的C盘是自带的128G的SSD盘,采用的是Windows 10操作系统,随着开发类工具的安装,C盘经常告警存储空间不足,尤其是安装Docker Desktop并进行多种镜像容器试验操作,由于Docker默认的镜像容器等存储位置在C盘, 更是捉襟见肘。

在无法快速扩容SSD盘的情况下,分析Docker(采用WSL2引擎)相关的C盘存储,进行相关更改, 将会是一种变通方案。

一、默认存储情况分析及解决方案

与Docker相关的存储主要有以下几个层面:

1) 容器引擎WSL2默认的Distro Ubuntu

这是通过Windows Store安装的,其默认存储位置是:

file:///C:/Users/<UserName>/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc/LocalState/

详细内容可以通过以下访问: \\wsl$\Ubuntu

这里暂不考虑Ubuntu安装包的位置的更改:

C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu_2204.1.8.0_x64__79rhkp1fndgsc

这是Windows应用程序,所占空间约为: 570M。

2) Docker Desktop应用程序文件的默认安装位置及重定向

Windows Docker Desktop应用的默认安装位置为:

C:\Program Files\Docker

而且安装时无选择项(截止2023/02/07的版本),可以采用目录链接的方式,将应用安装到D盘等,采用如下的命令:

mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker"

下载Windows Docker Desktop应用直接安装即可。

如下图可以看出,C盘展示目录链接的形式:

具体内容是安装在D盘下:

需要注意的是,这种安装模式下,当Docker Desktop应用程序自动更新升级时,有时会出现应用程序文件又物理安装到了C盘的情况,后续找时间再重现定位解决。

3) Docker应用自身系统、用户镜像文件及容器数据文件的存储位置

默认情况下, Docker相关镜像存储于C盘下的两个目录,且无法安装时进行选择:

可以与1)一起采用下文的wsl命令,将相关目录及文件的存储位置进行重新安排。

二、Docker相关存储文件位置的变动

1) 停止WSL2引擎及Windows Docker Desktop应用程序

如上所述,Docker相关的存储文件默认都是在C盘系统盘中,为进行存储数据文件位置的变动,首先需要退出Docker应用, 并停止wsl引擎

wsl --shutdown

2) 进行相关存储信息查询(默认在C盘)及确定新的存储目录

关联的数据及Distro可以采用以下的命令列出:

wsl -l -v -all

docker-desktop-data与docker-desktop分别别对应2个 vhdx 硬盘映像文件:

C:\Users\<user name>\AppData\Local\Docker\data\ext.vhdx

C:\Users\<user name>\AppData\Local\Docker\distro\ext.vhdx

可以通过wsl export及import命令来对相关文件的存储位置进行改变。

Ubuntu是wsl2的distro,新的存储目录更改到:

d:\wsl-distro目录中。

Docker相关的镜像文件存储及数据存储,新的存储目录将分别更改存储到:

d:\Docker\wsl\distro

d:\Docker\wsl\data

3) 执行存储位置更动命令

wsl --export Ubuntu D:\wsl-distro\ubuntu.tar

wsl --unregister Ubuntu

wsl --import Ubuntu D:\wsl-distro D:\ws-distro\ubuntu.tar --version 2

可以看到:

原来存储的文件已不存在。

而新的存储所在已生效。

同样对Windows DockerDesktop的相关存储执行系列操作:

Export操作:

wsl --export docker-desktop D:\Docker\wsl\distro\docker-desktop.tar

wsl --export docker-desktop-data D:\Docker\wsl\data\docker-desktop-data.tar

Unregister操作:

wsl --unregister docker-desktop-data

wsl --unregister docker-desktop

Import操作:

wsl --import docker-desktop-data d:\Docker\wsl\data\ D:\Docker\wsl\data\docker-desktop-data.tar --version 2

wsl --import docker-desktop d:\Docker\wsl\distro\ D:\Docker\wsl\distro\docker-desktop.tar --version 2

如下图所示:

同样可以看到原存储位置所占用空间已释放:

Import后也反映在新的存储位置:

4) 设置Docker Engine的存储位置

如前所示,默认情况下, Docker环境下的其它相关镜像文件及容器文件,存储在:C:\ProgramData\Docker目录下,可以通过Windows Docker Destop中的Docker Enginer的配置文件进行更改,具体是JSON文件中增加如下一行:

"data-root":"d\\docker"

然后重启Windows Docker Desktop, 后续运行所需的镜像文件及容器文件讲会存储到新的位置,而非原来的C盘下。

通过以上的操作,将可以一定程度上缓解C盘空间有限的情况下想继续使用Windows Docker Desktop进行更多探索而捉襟见肘的情况,特此分享。

总结

到此这篇关于Windows10系统下Docker默认存储位置更改方案的文章就介绍到这了,更多相关Docker默认存储位置更改内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker自建GitLab仓库的实现

    docker自建GitLab仓库的实现

    Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,本文主要介绍了docker自建GitLab仓库的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Linux新建用户并允许docker及docker基本命令

    Linux新建用户并允许docker及docker基本命令

    这篇文章给大家介绍了Linux新建用户并允许docker及docker的容器创建及基本命令讲解,需要的朋友参考下本文吧
    2017-12-12
  • docker无法搜索和拉取镜像的解决办法

    docker无法搜索和拉取镜像的解决办法

    这篇文章主要给大家介绍了关于docker无法搜索和拉取镜像的解决办法,通过更换可用的镜像加速器地址可以解决这个问题,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • PVE下扩展openwrt for x86分区大小方式

    PVE下扩展openwrt for x86分区大小方式

    本文介绍了在PVE环境下如何对OpenWRT虚拟机的分区进行扩容,包括磁盘调整、软件安装、分区配置和系统引导等步骤,操作前需做好备份,以防数据丢失
    2024-10-10
  • 基于docker搭建redis-sentinel集群的方法示例

    基于docker搭建redis-sentinel集群的方法示例

    这篇文章主要介绍了基于docker搭建redis-sentinel集群的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • k8s手动拉取docker镜像的方法示例

    k8s手动拉取docker镜像的方法示例

    docker是一种便捷的容器化解决方案,它可以通过拉取镜像的方式轻松地部署和管理应用程序,本文主要介绍了k8s手动拉取docker镜像的方法示例,感兴趣的可以了解一下
    2024-02-02
  • Docker 环境运行 Mysql 和开启 Binlog 配置主从同步的设置方法

    Docker 环境运行 Mysql 和开启 Binlog 配置主从同步的设置方法

    今天给大家分享Docker 环境运行 Mysql 和开启 Binlog 配置主从同步的设置方法,利用docker模拟mysql设置的主从同步,通过两种方式给大家介绍的非常详细,需要的朋友参考下吧
    2021-06-06
  • docker的harbor仓库登录问题小结

    docker的harbor仓库登录问题小结

    在使用Docker Harbor时,可能会因为证书信任问题或DNS解析问题导致登录失败,解决方法包括将自签名证书添加到系统的可信证书存储中,本文给大家介绍docker的harbor仓库登录问题,感兴趣的朋友一起看看吧
    2024-09-09
  • 如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

    如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

    本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到Nginx容器内,Nginx可以提供文件列表和下载功能,推荐使用Docker Compose来管理容器
    2025-03-03
  • 详解挂载运行的docker容器中如何挂载文件系统

    详解挂载运行的docker容器中如何挂载文件系统

    这篇文章主要给大家介绍了如何在挂载运行中的docker容器中挂载文件系统,文中通过一步步的实践过程介绍的很详细,相信对有需要的朋友们来说具有一定的参考借鉴价值,感兴趣的朋友们下面来一起看看吧。
    2016-12-12

最新评论