shm值太小导致docker容器中程序无法运行

RuntimeError: DataLoader worker (pid 11788) is killed by signal: Bus error. It is possible that dataloader's workers are out of shared memory. Please try to raise your shared memory limit.

这是因为shm值太小,利用 df -h 查看:

方法一

不断减小woker的数量,直到worker数等于1,但还报以上错误的话,则本方法不适用

方法二

重新创建docker容器,并在容器创建过程中将shm-size设置得足够大(例如本人的是 --shm-size 8gb

方法三

修改hostconfig.json文件也可以解决上述问题,且不用重新创建容器

  • 利用命令:docker inspect 容器名或容器id
  • 进入到上图Id目录中,找到hostconfig.json文件


  • 关闭docker(为防止修改的参数再度还原,建议先关闭docker,再进行后续操作)
systemctl stop docker
  • 利用vim 打开hostconfig.json文件
sudo vim hostconfig.json
  • 启动docker
systemctl start docker
  • 进到容器中查看效果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。