在docker容器内跑深度学习模型的shm错误
报错:ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).
原因:主要是shm size太小了
解决办法:
方法一:删除当前容器,从新创建一个新的容器,加上参数–shm-size 4G
docker run -it --shm-size 4G 镜像名 /bin/bash
这种方法需要在创建的时候就指定,但是有时候可能在环境都配好了才发现忘了指定shm了。这时候可以用方法二。
方法二:
(1) 先停止所有容器,docker stop container_ID
(2) 停止docker服务。systemctl stop docker
(3) cd /var/lib/containers/要修改的容器id
,这个目录是放容器的,有可能因为改了路径有变化。
(4) vim hostconfig.json
,找到ShmSize
修改这个数字,8589934592=8x1024x1024x1024
(5) 启动docker服务。systemctl start docker
(6) 启动容器,并查看是否修改有效。df -h