Windows下Podman Desktop容器目录迁移至其他硬盘的详细步骤

windows系统下,podman-desktop使用wsl2时会创建1个名为podman-machine-default容器,容器默认存放于C盘的C:\Users\<用户名>\.local\share\containers\podman\machine\wsl\wsldist\podman-machine-default\ext4.vhdx中。随着时间的推移,这个ext4.vhdx文件会越来越大,可能导致C盘空间不足,下面记录podman-desktop修改容器目录到其他的硬盘的操作记录。

本文默认将容器导出到 F:.cache 目录,然后重新导入到 F:\podman\machine\wsl\wsldist\podman-machine-default 目录

  • 导出镜像

    1
    2
    3
    mkdir -p F:\.cache && mkdir -p F:\podman\machine\wsl\wsldist\podman-machine-default

    wsl --export podman-machine-default F:\.cache\podman-machine-default.tar
  • 销毁原docker镜像:

    1
    wsl --unregister podman-machine-default
  • 重新导入镜像到F盘下

    使用刚备份的tar重新导入docker镜像并指定自定义的映射目录,并指定wsl版本为2

    1
    wsl --import podman-machine-default F:\podman\machine\wsl\wsldist\podman-machine-default\ F:\.cache\podman-machine-default.tar --version 2
  • 修改podman配置:

    • 迁移podman配置文件到F盘下

      手动将用户目录下的C:\Users\<用户名>\.local\share\containers\podman\machine目录下的的wsl目录、machine文件、.pub文件等复制到F:\podman\machine目录下

    • 修改podman-machine-default.json配置下的machine目录

      修改C:\Users\<用户名>\.config\containers\podman\machine\wsl\podman-machine-default.json配置文件下的machine目录F:\\podman\\machine

    • 修改podman-connections.json配置下的machine目录

      修改C:\Users\<用户名>\AppData\Roaming\containers\podman-connections.json配置文件下的machine目录F:\\podman\\machine

  • 重启

    重启podman-desktop应用,对应的wsl容器会自动关联启动,此时容器目录已经迁移到F盘下了,使用podman拉取镜像,可观察到F:\podman\machine\wsl\wsldist\podman-machine-default\ext4.vhdx这个文件体积变化。