在给一台腾讯云机器安装docker后发现无法启动,总是报错Failed to start Docker Application Container Engine,解决思路分享一下,以免各位童鞋踩坑。,说明:本文仅针对Linux CentOS 7环境下进行讲解,Mac版本请在官方下载Docker.dmg安装(留意:Macbook 没有yum、systemctl、service等Linux系统的命令,建议下载dmg桌面版Docker使用、配置方便。当然也可以brew install docker自己玩),Windows版本可以下载Docker exe安装包。,如果你已经安装过旧版的 Docker,可以先执行以下命令卸载旧版 Docker:,首次安装 Docker 之前,需要添加 Docker 安装源。添加之后,就可以从已经配置好的源去 安装和更新 Docker。添加 Docker 安装源的命令如下:,正常情况下,直接安装最新版本的 Docker 即可,因为最新版本的 Docker 有着更好的稳定性和安全性。也可以使用以下命令安装最新版本的 Docker: ,注意:Linux CentOS 版本可以通过uname -r 来查看,必须在3.10版本之上才可以使用新版docker。比如我机器上的是3.10.0-1160.62.1.el7.x86_64。,如果想要安装指定版本的 Docker,可以使用以下命令查看到一批最近的docker历史版本列表:,然后选取想要的版本执行以下命令:,安装完成后,使用以下命令启动 Docker。,安装完成后,我们需要使用以下命令启动一个 hello world 的容器。,如果看到输出了【Hello from Docker!】则说明docker可用。,其它命令比如docker ps -a查看所有镜像,自行学习即可。,在Linux中对不同的安装方式产生的安装目录和文件均不相同,有的会默认放到/sbin或/opt或/usr/local下面,配置文件一般会在/etc下面。Docker也是一样,如果使用:,来安装(建议均使用root权限),则安装的版本为1.13.1。,而如果按照上述第一节的做法,安装docker-ce版本,则最新是Docker version 20.10.14, build a224086。建议大家安装docker-ce版本。,安装完毕后,通过systemctl start docker启动直接报错:,从这个错误看不出来什么信息,就去看下运行状态:,systemctl status docker:,貌似也没发现什么有效的错误信息,唯一的一句错误是【Failed to start Docker Application Container Engine.】网上其它文章的如下几个解决方案均无法生效:,1)修改 /etc/docker/daemon.json添加registry-mirrors镜像地址:这个是用于加速的,跟启动失败一般不会有关系。,2)删除/etc/docker/daemon.json:根本没必要删除,用docker官网的镜像太慢了,肯定要配置国内的镜像源的。跟启动失败也不会有关系。,3)修改Docker Container Engine的配置文件:,有的文章建议去修改/usr/lib/systemd/system/docker.service配置文件,个人觉得是根本没有必要。虽说从错误信息看是有【Process: 14592 ExecStart=/usr/bin/dockerd –containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 14592 (code=exited, status=1/FAILURE)】这样一句,但本质上原生安装包不可能刚安装就有问题还需要用户自己修改什么。,鉴于上述几点都无法解决,就想到查看Linux系统操作日志(最后200行就可以排查):,tail -200f /var/log/messages,此时,再次输入systemctl start docker试图启动docker,发现如下错误行:,这句话的意思不就是iptables命令无法找到吗?那试图看下,cd /sbin目录查找iptables,竟然的确没有,用service iptables start也会报错:iptables: /sbin/iptables does not exist。,但是,/sbin目录下有个iptables_.sh文件!!是哪个应用修改了这个,不得而知,直接修改:,mv iptables_ iptables,再启动:service iptables start,成功了!,这时,再启动docker:systemctl start docker无输出但没报错了,通过systemctl status docker查看,状态是Active状态,表示docker运行正常了!,其它FAQ疑问欢迎大家持续留言给我来汇总归纳,谢谢~~,