故障 - 启动容器时报错 ¶
作者:KK
发表日期:2019.10.21
更新记录:
- 2020.05.23 增加报错3
报错1:docker: Error response from daemon: driver failed programming external connectivity on endpoint ubun
¶
发生场景:这是发生成 Windows 下,我一般是在重新开机(特别是每天上班开机)后,偶尔会遇到。
原因追遡:据了解是因为 Windows 下的 docker 在重新分配内存时,没有完全清理环境导致的。
解决方案:
退出 Docker Desktop,打开任务管理器找到 com.docker.backend.exe 这个进程并把它结束掉,过5秒左右它就会自动重生出现在任务管理器中,此时再启动 Docker Desktop 即可继续用你的命令启动容器。
重启机器。
报错2:: not found
¶
发生场景:容器的启动 command 为
sh /path/to/xxx.sh
,就是用 sh 执行一个 shell 脚本。原因:我暂时也不好说,大概是脚本里有一些 sh 不能识别的语法,而 bash 是比 sh 更先进的脚本执行器,能识别更多语法。
解决方案:
换成 bash 来跑脚本就好了,比如
bash /path/to/xxx.sh
。
报错3:cannot start service xxx: network yyy not found
¶
发生场景:我在
docker-compose up
启动容器的时候遇到这样的报错原因:大概就是因为不知什么原因,docker 创建的的虚拟网络被删除了,然而这些容器上次启动的时候引用过这个网络,现在再启动就引用不成功则报错。
解决方案:
执行
docker system prune
会整理这些信息,再重新启动容器。