J.M*_*ain 3 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
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个问题?
我试过停止 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
Run Code Online (Sandbox Code Playgroud)
问题在于 EC2 实例没有分配足够的 EBS 存储。按照以下步骤将修复它:
较旧的 docker 映像、卷等可能仍滞留在您的 EBS 存储中。来自泊坞窗文档:
\n\n\nDocker 采用保守的方法来清理未使用的对象(通常称为 \xe2\x80\x9c 垃圾收集\xe2\x80\x9d),例如图像、容器、卷和网络:除非您明确指出,否则这些对象通常不会被删除要求 Docker 这样做。这可能会导致 Docker 使用额外的磁盘空间。
\n
通过 SSH 连接到您的 EC2 实例并验证空间是否实际被占用:
\nssh ec2-user@<public-ip>\ndf -h\nRun Code Online (Sandbox Code Playgroud)\n然后你可以修剪掉旧图像:
\ndocker system prune\nRun Code Online (Sandbox Code Playgroud)\n阅读此命令的警告消息!
\n您还可以修剪体积。如果您没有在本地存储文件(无论如何您都不应该这样做,它们应该存储在 AWS S3 之类的文件中),请执行此操作
\nUse with Caution:\n\ndocker system prune --volumes\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3024 次 |
| 最近记录: |