问题背景
以前在虚拟机上安装了一个docker,可以正常使用的,今天突然宿主机机器内存条坏了,换了内存条后启动机器,再使用systemctrl start docker启动docker,最后使用docker start containID启动报错
文章来源:https://www.toymoban.com/news/detail-631965.html
问题原因
网上没有找到相应的描述,仔细分析看是write /proc/sys/kernel/shmmni报错了,错误原因是invalid argument。
因此cat /proc/sys/kernel/shmmni查看内容为4096,然后试着写一个大的数进去,执行echo 40960 > /proc/sys/kernel/shmmni果然报错了。
猜测是因为docker启动时写整个文件导致的报错。
记得docker启动是有配置过shmmni的值,在**/var/lib/docker/containers/具体的containerID**
下的hostconfig.json中配置了kernel.shmmni":“40960”。文章来源地址https://www.toymoban.com/news/detail-631965.html
解决办法
- systemctrl stop docker 关闭docker服务
- 修改hostconfig.json中的kernel.shmmni":“4096”
- systemctrl start docker 开启docker服务
- docker start containID启动容器,正常启动
到了这里,关于记一次docker启动失败的问题排查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!