docker出现crypto/rand: blocked for 60 seconds waiting to read random data from the kernel解决办法

问题描述:

[root@ecs-zaAOz ~]# service docker start
Redirecting to /bin/systemctl start docker.service
^C

启动时候会一直卡住,通过日志查看到错误信息如下:

[root@ecs-zaAOz ~]# journalctl -amu docker
-- Logs begin at 三 2021-02-03 11:35:23 CST, end at 三 2021-02-03 11:39:24 CST. --
2月 03 11:36:27 ecs-zaAOz systemd[1]: Starting Docker Application Container Engine...
2月 03 11:37:28 ecs-zaAOz dockerd[10723]: crypto/rand: blocked for 60 seconds waiting to read random data from the kernel

查看系统熵参数:

[root@ecs-zaAOz ~]# cat /proc/sys/kernel/random/entropy_avail
485

发现分配的熵参数比较小。

解决办法:

yum install rng-tools -y
systemctl start rngd
systemctl enable rngd

注意:除此方法之外,还可以使用haveged来解决,Haveged可以解决在某些情况下,系统熵过低的问题。

安装后,再次查看系统熵参数:

[root@ecs-zaAOz ~]# cat /proc/sys/kernel/random/entropy_avail
3114

可以发现系统熵参数处于合适位置。

随后启动docker即可正常启动。

原因分析:

应该是docker启动的时候,发现熵池的size 不够,导致卡住,我们通过rng-tools增加内核中的熵数量,即可恢复正常。

参考文章:Rng-tools    Haveged

» 本文链接:docker出现crypto/rand: blocked for 60 seconds waiting to read random data from the kernel解决办法
» 转载请注明来源:刺客博客
» 如果文章失效或者安装失败,请留言进行反馈。