Я пытаюсь создать ограничение на размер диска контейнера в докере. В частности, у меня есть контейнер, который загружает данные, и я хочу, чтобы эти данные были ниже предела, который я могу ограничить заранее.
До сих пор то, что я создал, работает на поверхностном уровне (предотвращает сохранение файла на компьютере) - однако я могу наблюдать, как контейнер выполняет свою работу, и я вижу, что загрузка завершена до 100%, прежде чем он говорит: «Загрузка не удалась». Поэтому кажется, что он загружается во временный каталог, а затем проверяет размер файла, прежде чем передать его в окончательное место. (или нет)
Это не полностью решает проблему, которую я пытался исправить, потому что, очевидно, загрузка потребляет много ресурсов. Я не уверен, что именно мне здесь не хватает..
Это то, что создает вышеуказанное поведение:
sudo zfs create new-pool/zfsvol1
sudo zfs set quota=1G new-pool/zfsvol1
docker run -e "TASK=download" -e "AZURE_SAS_TOKEN= ... " -v /newpool/zfsvol1:/data containerName azureFileToDownload
У меня было такое же поведение при интерактивном запуске контейнера без томов и загрузки в контейнер. Я попытался изменить драйвер хранилища (внутри информации $ docker) на zfs (из оверлея), и это не помогло. Я просмотрел плагины для докеров, но похоже, что они не решат проблему.
Все это выполняется внутри виртуальной машины Ubuntu; Я сделал пул zfs, чтобы проверить все это. Я почти уверен, что этого не должно происходить, потому что это не очень полезно. Кто-нибудь знает, почему это происходит?
containerName
, о котором вы упомянули, или какой-либо способ проверить размер файла перед запуском контейнера? - person chash   schedule 08.07.2020