Azure虚拟机拉取大Docker镜像失败,如何临时分配空间?
解决Azure虚拟机拉取大Docker镜像时临时空间不足的问题
从报错信息和磁盘使用情况来看,根分区虽有剩余空间,但镜像解压过程中pip缓存目录(/root/.cache/pip)所在路径临时空间不足,而/mnt挂载的/dev/sdb1有15G空闲空间,可通过以下临时方案解决:
方案一:临时转移pip缓存目录到空闲分区
# 创建临时pip缓存目录 mkdir -p /mnt/pip_cache # 设置环境变量,让pip使用新的缓存目录(当前会话临时生效) export PIP_CACHE_DIR=/mnt/pip_cache # 拉取Docker镜像 docker pull quantconnect/lean
拉取完成后,若不需要可删除/mnt/pip_cache,环境变量会随会话结束失效。
方案二:临时修改Docker临时解压目录
# 创建Docker临时解压目录 mkdir -p /mnt/docker_tmp # 停止当前Docker服务 sudo systemctl stop docker # 指定临时目录启动Docker sudo TMPDIR=/mnt/docker_tmp systemctl start docker # 拉取镜像 docker pull quantconnect/lean # 拉取完成后恢复Docker默认设置 sudo systemctl stop docker sudo systemctl start docker # 可删除临时目录 rm -rf /mnt/docker_tmp
方案三:绑定挂载空闲分区到pip缓存路径
# 备份原pip缓存目录(若有内容) mv /root/.cache/pip /root/.cache/pip.bak # 创建对应目录 mkdir -p /mnt/pip_cache /root/.cache/pip # 绑定挂载空闲分区目录到pip缓存路径 sudo mount --bind /mnt/pip_cache /root/.cache/pip # 拉取镜像 docker pull quantconnect/lean # 完成后解除挂载并恢复原目录 sudo umount /root/.cache/pip mv /root/.cache/pip.bak /root/.cache/pip # 删除临时目录 rm -rf /mnt/pip_cache
以上方案均为临时生效,无需修改系统永久配置,满足仅临时使用额外空间的需求。
内容的提问来源于stack exchange,提问作者Ani
相关产品推荐
相关产品推荐

