从AWS提取docker映像时,设备上没有剩余空间

时间:2019-01-28 08:07:48

标签: amazon-web-services docker docker-compose

我正在从AWS中提取各种docker映像,但是由于以下错误,它始终卡在最终映像上

ERROR: for <container-name>  failed to register layer: Error processing tar file(exit status 1): symlink libasprintf.so.0.0.0 /usr/lib64/libasprintf.so: no space left on device
ERROR: failed to register layer: Error processing tar file(exit status 1): symlink libasprintf.so.0.0.0 /usr/lib64/libasprintf.so: no space left on device

有人知道如何解决此问题吗?

我尝试停止docker,删除var / lib / docker并重新启动它,但它卡在同一位置

的结果
  

df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/nvme0n1p1  8.0G  6.5G  1.6G  81% /

devtmpfs        3.7G     0  3.7G   0% /dev

tmpfs           3.7G     0  3.7G   0% /dev/shm

tmpfs           3.7G   17M  3.7G   1% /run

tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup

tmpfs           753M     0  753M   0% /run/user/0

tmpfs           753M     0  753M   0% /run/user/1000

2 个答案:

答案 0 :(得分:1)

问题在于EC2实例没有为其分配足够的EBS存储。请按照以下步骤对其进行修复:

  • 导航到ec2
  • 查看实例的详细信息,然后找到根设备和阻止设备
  • 按路径并选择EBS ID
  • 在“音量”面板中单击操作
  • 选择修改音量
  • 输入所需的卷大小(默认为8GB,不需要更多)
  • ssh进入实例
  • 运行lsblk查看可用卷并记下大小
  • 在要调整大小的卷上运行sudo growpart / dev / volumename 1
  • 运行sudo xfs_growfs / dev / volumename(在lsblk的mountpoint列中带有/的那个)

答案 1 :(得分:0)

在遇到同样的问题后,我写了一篇有关此的文章。如果您之前已成功部署,则可能只需要在部署过程中添加一些维护即可。就我而言,我只是添加了cronjob来运行以下命令:

docker ps -q --filter "status=exited" | xargs --no-run-if-empty docker rm;
docker volume ls -qf dangling=true | xargs -r docker volume rm;

https://medium.com/@_ifnull/aws-ecs-no-space-left-on-device-ce00461bb3cb