1. 问题描述
每次重启docker容器时,都会报错:
“Error response from daemon: Unknown runtime specified orion
Error: failed to start containers: e00c63fc78c1”
(e00c63fc78c1是容器的id)
2. 查bug思路
因为是在start阶段就报错,且在重启docker和daemon服务后都无法解决这个问题,并且在重启服务器前这些容器都是能够正常关闭和开启的。因此,我怀疑是重启后,由于某些原因,容器的初始配置文件出了问题。
于是,用docker inspect e00c63fc78c1命令查看了这个容器的属性
docker inspect e00c63fc78c1
果然,在属性中发现hostconfig中多出了个”Runtime”:”orion”的值
由此,明确问题所在位置。
3 解决方案
1. 进入容器配置文件所在文件夹,一般是在 “/var/lib/docker/containers/对应容器id” 中。
容器id可在上一步的最开头找到
cd /var/lib/docker/containers/容器id
2. 进入容器后,打开hostconfig.json文件,将”Runtime”:”orion”一句删去并保存
3. 保存修改后的hostconfig.json文件后,重启docker服务
必须要重启docker。如果不重启docker,hostconfig.json文件会恢复修改前的状态,前面的工作就白做了。
重启docker服务的命令如下:
systemctl restart docker
4. 重启docker服务后,重新提起容器,可以看到已经能成功重启了
docker start 容器id