Docker有太多链接的麻烦

时间:2016-12-27 15:17:50

标签: docker build

在docker构建期间,我遇到此错误:

Step 1 : FROM million12/nginx-php:latest
 ---> 09c053597dda
Step 2 : COPY etc/docker-jenkins/default.conf /etc/nginx/hosts.d/default.conf
 ---> Using cache
 ---> 26a29dd01af3
Step 3 : COPY app /data/www/app
INFO[0012] link /var/lib/docker/overlay/99380f87e1572466529c4f668b5e79fe711496e9
85d313cc0d2f45bfdbdb3969/root/var/lib/yum/yumdb/p/939d2078d64d51ff7ad16150745e94
a26085bc93-php70-php-opcache-7.0.11-1.el7.remi-x86_64/checksum_type /var/lib/doc
ker/overlay/9ac18f869f20ba8ba29d2a16f00f2ce6ff1c6d0d1a40192a0efb8933c8ad1c45/tmp
root958106287/var/lib/yum/yumdb/p/939d2078d64d51ff7ad16150745e94a26085bc93-php70
-php-opcache-7.0.11-1.el7.remi-x86_64/checksum_type: too many links

有人有想法解决这个问题吗?在app目录中,文件或目录不多,而且时间不长。 我在ubuntu 16.04上使用ext4 fs 谢谢:))

4 个答案:

答案 0 :(得分:3)

我也有同样的问题,但这是因为另一个原因。 如果您使用overlayfs作为存储驱动程序(请参阅docker info | grep 'Storage Driver'),您将获得太多链接'很快,因为它使用硬链接来制作图层,并且它对可以拥有的数量有限制。 所以解决方案是改为另一个,通常是overlayfs2(用来解决这个问题)。

答案 1 :(得分:0)

我的docker构建遇到了类似的问题并设法解决了它(感谢OP提供了remidner)。

我的硬盘正在慢慢填满,但似乎有足够的空间(大约2GB,图像小于那个),实际失败的部分是我的FROM million12/nginx-php:latest,但它从未报告错误,只有在下一个命令是什么时 - 即使它就像RUN echo 'Ultimate megaforce explosion festival 2017'一样。

我注意到我通过运行docker ps -a获得了大量图片 - 其中大部分图片已经过时了,我用docker rmi 8ab6f43e5e9b 87c6109bbdef 3668f4650c4f手动销毁了一堆图片......将会跟踪一长串ID 。您还可以使用docker rm $(docker ps -aq)批量删除所有内容。我得到了大约25GB的可用空间。

之后,构建开始起作用。错误消息suuuucks。

答案 2 :(得分:0)

尽管这个问题现在已经很老了,但我想补充一点。

当系统中有过多的悬空图像时,可能会发生此问题。您应该不定期地清除它们,或者可以创建一个调度程序来不时清除这些悬空的图像。

尝试以下操作删除悬空的图像:

sudo docker rmi -f $(docker images -q --filter dangling=true)

docker system prune

请参阅此以了解更多有关悬空图像的信息单击here

答案 3 :(得分:0)

docker system prune 不再适合我时,您可以使用 sudo docker rmi -f $(docker images | grep "<none>" | awk ' { print $3} ')

非常感谢 Robert 在 https://github.com/coreos/bugs/issues/474#issuecomment-140585601 发表评论。