我正在使用 ubuntu 18.04 docker 容器。我遇到了空间不足的错误。
$cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"
当我尝试从 torchvision 训练 resnext101 模型时,出现以下错误。
Downloading: "https://download.pytorch.org/models/resnext101_32x8d-8ba56ff5.pth" to /home/vmuser/.cache/torch/hub/checkpoints/resnext101_32x8d-8ba56ff5.pth
0%| | 0.00/340M [00:00<?, ?B/s]
Traceback (most recent call last):
File "train_attn_best_config.py", line 377, in <module>
tabct = TabCT(cnn = model, fc_dim = fd, attn_filters = af, n_attn_layers = nal).to(gpu)
File "train_attn_best_config.py", line 219, in __init__
self.ct_cnn = cnn_dict[cnn](pretrained = True)
File "/home/vmuser/anaconda3/envs/pulmo/lib/python3.7/site-packages/torchvision/models/resnet.py", line 317, in resnext101_32x8d
pretrained, progress, **kwargs)
File "/home/vmuser/anaconda3/envs/pulmo/lib/python3.7/site-packages/torchvision/models/resnet.py", line 227, in _resnet
progress=progress)
File "/home/vmuser/anaconda3/envs/pulmo/lib/python3.7/site-packages/torch/hub.py", line 481, in load_state_dict_from_url
download_url_to_file(url, cached_file, hash_prefix, progress=progress)
File "/home/vmuser/anaconda3/envs/pulmo/lib/python3.7/site-packages/torch/hub.py", line 404, in download_url_to_file
f.write(buffer)
File "/home/vmuser/anaconda3/envs/pulmo/lib/python3.7/tempfile.py", line 481, in func_wrapper
return func(*args, **kwargs)
OSError: [Errno 28] No space left on device
当我运行 时df
,我得到了这个,我的一个 tmpfs 只有 65 mb。我尝试运行export TMPDIR=/var/tmp
并export TMPDIR=~/Data/tmp
$df
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 1797272568 1705953392 0 100% /
tmpfs 65536 0 65536 0% /dev
tmpfs 98346264 0 98346264 0% /sys/fs/cgroup
/dev/sda6 1797272568 1705953392 0 100% /etc/hosts
shm 65536 0 65536 0% /dev/shm
/dev/sdb1 1845816492 1362932848 389098592 78% /home/vmuser/Data
tmpfs 98346264 12 98346252 1% /proc/driver/nvidia
tmpfs 19669256 93256 19576000 1% /run/nvidia-persistenced/socket
udev 98318592 0 98318592 0% /dev/nvidia1
tmpfs 98346264 0 98346264 0% /proc/acpi
tmpfs 98346264 0 98346264 0% /proc/scsi
tmpfs 98346264 0 98346264 0% /sys/firmware
但错误仍然存在。
当我尝试升级任何软件包时,出现另一个错误:
E: You don't have enough free space in /var/cache/apt/archives/.
当我跑步的时候,
sudo du -hsc /var/cache
1.6M /var/cache
1.6M total
我的 /var/cache 中的空间非常小。
我尝试了clean
、、、autoclean
符号clean packages
链接sudo ln -s /home/apt/ /var/cache/apt
,但仍然面临这些错误。
答案1
如果您的 Docker 容器正在使用 DeviceMapper、Btrfs、overlay2、WindowsFilter 或 ZFS Graph 驱动程序,那么您可以在定义容器时执行如下操作:
docker run -it --storage-opt size=500G torchy /bin/bash
笔记:确保更改torchy
为正确的容器名称。
这将允许在创建时将容器的根文件系统大小设置为 500G。与许多虚拟机工具一样,您无需在定义时预先分配空间。
注意事项
- 使用 DeviceMapper、Btrfs、WindowsFilter 或 ZFS Graph 驱动程序时,不能传递小于默认 BaseFS 大小(通常为 10G)的大小
- 使用 overlay2 存储驱动程序时,size 选项仅在备份文件系统为 XFS 并使用
pquota
mount 选项挂载时才可用。在这些条件下,您可以传递小于备份文件系统大小的任何大小。
欲了解更多信息,文档是你的朋友