Docker save не может экспортировать ~ 50 ГБ изображения, потому что нет места, хотя у меня есть 150 ГБ свободного - PullRequest
0 голосов
/ 01 июля 2019

Я просто пытаюсь экспортировать имеющийся у меня образ 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

Однако, если я запускаю df -h, я могу подтвердить, что у меня более 150 ГБ свободного места:

$ 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

вот список изображений:

$ 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

Я даже не уверен, что все эти изображения объединены в 33 ГБ, или 33 ГБ - это просто размер файла последнего изображения.Это просто простой док Kali Linux с одним специальным инструментом, который занимает около 5 ГБ.Я почти уверен, что если размер этого образа составляет 70 ГБ, то он больше, чем у моей виртуальной машины, на которой установлено еще больше компонентов.

Очень смущен тем, что здесь происходит.Любая помощь будет принята с благодарностью!

1 Ответ

2 голосов
/ 01 июля 2019

Ваш вывод df -h соответствует выводу, который я ожидал бы увидеть на mac , что означает, что ваши Linux-контейнеры не работают в системе, где запускался df -h.

Если вы работаете с Docker Desktop для Mac, то ваш демон Docker работает на виртуальной машине HyperKit, которой в фоновом режиме управляет приложение китового значка Docker.app.Эта виртуальная машина включает в себя виртуальный диск с конечным размером.Наименьший настраиваемый размер диска для этого образа диска составляет 16 ГБ.Чтобы узнать, сколько места занимает виртуальная машина, управляемая настольным ПК, щелкните значок «Кит» и выберите «Настройки».На вкладке «Диск» вы увидите, насколько большой диск и сколько места он занимает (из-за сжатия).

Когда команда docker save запущена, демон создаст.tar в месте, указанном в выводе вашей ошибки, /var/lib/docker/tmp/....Поскольку на диске вашей виртуальной машины недостаточно места для этого временного файла .tar, вы получаете сообщение об ошибке «Недостаточно места на диске».

Чтобы увидеть истинный объем пространства, доступного для виртуальной машины, выполните следующую команду:

docker run --rm -it -v /var/lib/docker/tmp:/r alpine df -h /r 

Можно увеличить объем пространства, доступного для образа вашего диска, но имейте в виду, что он займет реальное пространство на вашем жестком диске, даже если большие файлы будут удалены из файловой системы наобраз диска.

tldr;вы запускаете docker на виртуальной машине, на которой меньше доступного пространства, чем на хосте показывает как доступную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...