我正在使用docker for Windows来启动MSSQL服务器.一切都工作得很好,除了我的硬盘现已满了.我已经使用了docker拥有的所有清理命令,删除了所有图像和容器:
docker kill $(docker ps -q)
docker rm $(docker ps -a -q)
docker rmi $(docker images -q -f dangling=true)
docker rmi $(docker images -q)
Run Code Online (Sandbox Code Playgroud)
这不会删除c:\ ProgramData\Docker\windowsfilter文件夹中的任何内容,其中仍有大量文件.大约130gb的存储空间,没有任何运行容器或存储的图像.
Client:
Version: 17.03.1-ce
API version: 1.27
Go version: go1.7.5
Git commit: c6d412e
Built: Tue Mar 28 00:40:02 2017
OS/Arch: windows/amd64
Server:
Version: 17.03.1-ce
API version: 1.27 (minimum version 1.24)
Go version: go1.7.5
Git commit: c6d412e
Built: Tue Mar 28 00:40:02 2017
OS/Arch: windows/amd64
Experimental: true
Run Code Online (Sandbox Code Playgroud)
我尝试使用docker-ci-zap(https://github.com/jhowardmsft/docker-ci-zap),但不建议运行该工具,所以我宁愿使用替代解决方案
Jam*_*son 14
自Docker 1.13(2017年1月)以来,Docker有一些新的规范修剪子命令(谨慎使用):
但是,Docker for Windows和Docker for Mac可能会有一些粗略的升级,这些升级留下了一些东西,这需要手动删除文件或对某些人进行"工厂重置".
rm -rf ~/Library/Containers/com.docker.docker/Data/*)Nig*_*ist 11
ext4.vhdx 文件大约有 40GB,ProgramData/Docker Desktop 有大约 17GB。如果您使用 Docker Desktop,则很容易清理它:
只需打开它,单击“疑难解答”,然后单击“清理/清除数据”
对我来说效果很好。
只需使用prune命令docker system,它就会像这样清理所有东西
$ docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all build cache Are you sure you want to continue? [y/N] y
Run Code Online (Sandbox Code Playgroud)
在 Docker 17.06.1 及更高版本中,您可以添加--volumes标志 fordocker system prune来修剪至少一个容器未使用的卷。
有关更多详细信息https://docs.docker.com/config/pruning/#prune-everything
从 PowerShell 窗口:
docker system prune -a -f
net stop com.docker.service
taskkill /F /IM "Docker Desktop.exe"
stop-vm DockerDesktopVM
Optimize-VHD -Path "C:\ProgramData\DockerDesktop\vm-data\DockerDesktop.vhdx" -Mode Full
start-vm DockerDesktopVM
start "C:\Program Files\Docker\Docker\Docker Desktop.exe"
net start com.docker.service
Run Code Online (Sandbox Code Playgroud)
docker-ci-zap.exe从https://github.com/jhowardmsft/docker-ci-zap下载,然后以管理员权限在 powershell 中运行:
.\docker-ci-zap.exe -folder "C:\ProgramData\docker"
Run Code Online (Sandbox Code Playgroud)
参考: https: //github.com/moby/moby/issues/26873
运行 Windows 容器后我遇到了类似的问题。我的windowsfilter文件夹大小增加到 ~80GB,我无法手动或使用docker system prune --valume. 经过几个小时的谷歌搜索后,我总是以docker-ci-zap.exe不推荐的解决方案结束。然后我通过阅读https://github.com/docker/for-win/issues/745#issuecomment-444461889找到了一个简单的解决方法。
解决方法是-removing为目录中要删除的文件夹添加后缀windowsfilter,然后重新启动 docker。这将触发 docker 在启动时正确清理文件夹。我的经验是docker每次启动时最多会清理10个文件夹。如果您有超过 10 个文件夹,那么您可能需要重新启动几次才能将其全部删除。
如果您想删除所有文件,可以使用以下命令。
Get-ChildItem -Path D:\docker\data\windowsfilter -Directory | % {Rename-Item $_.FullName "$($_.FullName)-removing" -ErrorAction:SilentlyContinue}
| 归档时间: |
|
| 查看次数: |
11017 次 |
| 最近记录: |