【问题标题】:Docker uses memory without any imageDocker 使用没有任何镜像的内存
【发布时间】:2018-11-18 02:07:15
【问题描述】:

我正在尝试在 Windows 10 上从 Dockerfile 创建一个 docker 映像。作为新手,由于 Dockerfile 中的一个或多个语法错误,它多次崩溃。我尝试使用docker system prune --all 清除所有图像。我清理了一些磁盘空间(如果我是对的,这里的系统是指 HDD 而不是 RAM?)。不管怎样,我看到Docker.Service 似乎正在使用6+ GB 的内存。

我的问题是,有没有办法清除Docker.Service 中的内存?为什么不使用图像时会使用这么多内存?我知道可以通过退出Docker或者强制关闭来清除。

更新

顺便说一句,我使用的是Linux container,右键单击托盘中的泊坞窗图标时有一个选项。

更新 2

我尝试了他们文档页面中的所有命令 - https://docs.docker.com/config/pruning/ - 无效。

更新 3

即使创建并保存了图像,似乎也没有清除。看起来像个错误?

【问题讨论】:

    标签: windows docker windows-services docker-for-windows docker-desktop


    【解决方案1】:

    Docker 为 dockerfile 中的每个命令创建一个镜像,它会创建镜像层并将其存储在缓存中,因此,每当您的 dockerfile 执行中断时,该镜像都会保留在缓存中。因此,您会看到内存消耗。

    尝试以下命令删除所有图像

    docker rmi $(docker images -a -q)

    【讨论】:

    • 我收到了 - unknown shorthand flag: 'a' in -aq) See 'docker rmi --help'。顺便说一句,我没有要删除的图像,所以 docker system prune --all 会自动删除
    • 也许你可以在这里参考命令gist.github.com/bastman/5b57ddb3c11942094f8d0a97d461b430 并删除未使用的东西,如卷等
    【解决方案2】:

    Docker 在 Windows 上的虚拟机中运行 Linux 容器。 6G 内存可能是您分配给该 VM 的内存。使用 docker stats 查看在该 VM 内运行的容器的资源使用情况。

    【讨论】:

    • docker stats 什么都没有显示,我能够构建 docker 文件(最终),但我仍然看到 6GB 内存被使用。
    • @akshay 6GB RAM 分配给虚拟机,而不是您的容器。您可以将 VM 配置为更多或更少。
    • @Akshay 你没有“清除虚拟机”,有一个正在运行的内核希望能够访问你在启动它时给它的所有内存。这就像在笔记本电脑运行时将内存从笔记本电脑中拉出一样。您可以关闭 VM,或对其进行调整。根据您的安装类型查看您的 docker 设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    相关资源
    最近更新 更多