我只是想导出我拥有的 Docker 映像,以便可以将其推送到另一个系统;但是,由于没有空间,我什至无法保存它:
$ docker save mycustomimage:latest -o nessus.tar
Error response from daemon: write /var/lib/docker/tmp/docker-export-255300778/f2881cc25962de53a9f4efdbf759e88c86bd183abf773477ebbd5ddebc229ae8/layer.tar: no space left on device
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行df -h,我可以确认我有超过 150GB 的可用空间:
$ df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1s1 466Gi 275Gi 182Gi 61% 1290334 9223372036853485473 0% /
devfs 374Ki 374Ki 0Bi 100% 1296 0 100% /dev
/dev/disk1s4 466Gi 8.0Gi 182Gi 5% 8 9223372036854775799 0% /private/var/vm
map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net
map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home
drivefs 466Gi 292Gi 173Gi 63% 18446744069414640546 4294967295 32808793364899312% /Volumes/GoogleDrive
Run Code Online (Sandbox Code Playgroud)
这是图像列表:
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
mycustomimage/kali latest a1f226987b86 12 hours ago 33GB
mycustomimage/kali <none> ac3292dcbd65 4 months ago 25.1GB
mycustomimage/kali <none> 8a628403a803 6 months ago 12GB
Run Code Online (Sandbox Code Playgroud)
我什至不确定所有这些图像的总大小是否为 33GB,或者 33GB 只是最后一个图像的文件大小。它只是一个简单的 Kali Linux docker,上面有一个自定义工具,空间约为 5GB。我非常确定,如果这个映像有 70GB 大,那么它比我安装的虚拟机还要大。
您的df -h输出与我期望在 mac 上看到的输出相对应,这意味着您的 Linux 容器没有在df -h运行的系统上运行。
如果您运行的是 Mac 版 Docker Desktop,那么您的 docker 守护进程将在 hyperkit 虚拟机内运行,鲸鱼图标 Docker.app 应用程序在后台管理该虚拟机。该虚拟机包括具有有限大小的虚拟磁盘。此磁盘映像的最小可配置磁盘大小为 16GB。要查看您的鲸鱼图标 docker 桌面托管虚拟机有多少空间,请单击鲸鱼图标,然后选择“首选项”。在“磁盘”选项卡下,您将看到磁盘有多大,以及占用了多少空间(由于压缩)。
运行该命令时docker save,守护程序将在错误输出中引用的位置创建一个 .tar /var/lib/docker/tmp/...。由于虚拟机的磁盘没有足够的空间来容纳该临时 .tar 文件,因此您会收到磁盘空间不足错误。
要查看虚拟机可用的真实空间量,请运行以下命令:
docker run --rm -it -v /var/lib/docker/tmp:/r alpine df -h /r
Run Code Online (Sandbox Code Playgroud)
可以增加磁盘映像可用的空间量,但请记住,即使从磁盘映像上的文件系统中删除了大文件,这也会占用硬盘驱动器上的实际空间。
太棒了;您在虚拟机中运行 docker,该虚拟机的可用空间比主机显示的可用空间要少。
| 归档时间: |
|
| 查看次数: |
1689 次 |
| 最近记录: |