如何扩容AWS SageMaker笔记本实例临时根卷解决Docker构建空间不足问题
解决方案
最优方案:迁移Docker数据目录至闲置EBS卷
你当前挂载在/home/ec2-user/SageMaker的EBS卷剩余58G可用空间,完全满足Docker镜像构建的存储需求,操作步骤如下:
- 停止Docker服务
sudo systemctl stop docker
- 迁移原有Docker数据到EBS卷
sudo mv /var/lib/docker /home/ec2-user/SageMaker/docker
- 创建软链接将Docker默认数据路径指向新位置
sudo ln -s /home/ec2-user/SageMaker/docker /var/lib/docker
- 重启Docker服务
sudo systemctl start docker
- 验证配置生效,执行如下命令确认Docker根目录已切换:
docker info | grep "Docker Root Dir"
输出为Docker Root Dir: /home/ec2-user/SageMaker/docker即为配置成功。
如果需要实例重启后自动生效,可将上述步骤写入SageMaker笔记本实例的生命周期启动脚本中,避免每次重启重复操作。
配套优化(进一步降低空间占用)
- 合并Dockerfile中RUN指令,减少中间镜像层临时空间占用,将两个独立的pip安装指令合并:
RUN pip3 install torch==1.8.2+cu111 torchvision==0.9.2+cu111 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html && \ python3 -m pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu111/torch1.8/index.html
- 构建前清理Docker冗余缓存释放空间:
docker system prune -af
- 新增
.dockerignore文件,将不需要传入构建上下文的大文件(如本地数据集、日志、临时文件等)加入忽略列表,降低构建上下文的传输与临时存储开销。
注意:不要删除SageMaker自带的anaconda目录,该目录预装了boto3、sagemaker等核心依赖库,删除后会导致Python运行环境异常。
内容的提问来源于stack exchange,提问作者Batuhan Tekmen
相关产品推荐
相关产品推荐

