今天早些时候,我安装了 Docker 并按照一些教程操作。在运行有关使用 Docker 和基本 Meteor 应用程序的教程时,我收到错误消息,提示磁盘空间不足,尽管我的/home
分区有 17 GB 可用空间。
我重启了电脑,系统提示我The volume "Filesystem root" has 0 bytes disk space remaining
。在如此令人窒息的空间里,我的浏览器都无法启动。
我运行了sudo apt-get remove docker-ce docker-ce-cli containerd.io
,这回收了 33.4 MB 的磁盘空间/
,这意味着我可以启动浏览器并查找有关如何回收更多空间的提示。在删除旧内核、运行sudo apt autoremove --purge
和sudo apt-get clean
并删除一些我有一段时间没用过的第三方应用程序后,我总共回收了 800 多 MB,所以至少我有一些喘息的空间。
然而,安装 Docker 并创建六个镜像后,我的 19 GB /
分区突然饱和,这似乎只是巧合。而且似乎还有很多空间没有释放,迫使我删除之前没有造成麻烦的其他文件。
Docker 是否做了一些特殊的事情/
?我可以做些什么来撤消它,并避免再次发生这种情况?
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 3,8G 0 3,8G 0% /dev
tmpfs 783M 9,6M 773M 2% /run
/dev/nvme0n1p5 19G 17G 776M 96% /
tmpfs 3,9G 468K 3,9G 1% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup
...
/dev/nvme0n1p6 465M 80M 357M 19% /boot
/dev/nvme0n1p7 77G 57G 17G 78% /home
/dev/nvme0n1p1 496M 82M 415M 17% /boot/efi
tmpfs 783M 52K 783M 1% /run/user/1000
答案1
事实证明:
- Docker 将其镜像和容器存储在
/var/lib/docker/
- 要包含 Meteor 应用程序,需要 3 个图像,每个图像 907 MB
$ docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 33b3559a88ad 2 minutes ago 907MB
<none> <none> f2136da9e497 2 minutes ago 907MB
node 12.6 7c412a558705 12 months ago 907MB
这(连同我的其他实验)很快就填满了我的 19 GB 分区。
为了解决这个问题,我遵循了建议这里,创建一个从我的分区/var/lib/docker/
更宽阔的平原上的文件夹的符号链接。我的分区为此感谢我:/home
/
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 3,8G 0 3,8G 0% /dev
tmpfs 783M 9,7M 773M 2% /run
/dev/nvme0n1p5 19G 15G 3,3G 82% /
...
我还使用docker rmi $(docker images -a -q)
和docker image prune
删除了我在实验时创建的不再需要的大文件。