Linux服务器安装Docker,启动失败问题的解决

目录
  • 背景
  • 启动失败
  • 查看具体报错 & 解决
  • 总结

背景

Docker启动失败的原因和使用了阿里云的源有关。

如果大家有使用到阿里云的源仓库,可以继续看下是否也可以解决问题。

启动失败

在Linux服务器上安装docker,执行docker 和docker version没有问题。

但是执行docker images等命令报错,按照提示首先

执行:systemctl status docker

可以看到,报错信息为“无法启动Docker应用的容器引擎”,这里其实只能看到启动失败,状态为failed,没有更多提示信息。

查看具体报错 & 解决

执行命令:dockerd

这时,我们发现已经找到了正确的debug方式了:这里报错的具体信息为“启动守护进程时,初始化graphdriver失败:overlay2.override_kernel_check选项未知”。

这时我们需要去daemon的json配置文件:/etc/docker/daemon.json,将stroage-driver替换一下。

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
    "log-opts": {
      "max-size": "100m"
    },
    "storage-driver": "overlay2",
    "storage-opts": [
      "overlay2.override_kernel_check=true"
    ]
    ## 替换成下面
    "storage-driver": "overlay"
}

然后尝试启动docker:systemctl start docker ,同样用dockerd命令看到有以下错误:

这里意思是:

“守护进程初始化网络控制器报错:地址列表没有可用的IP”。

这是为什么呢?这是因为Docker会检查bridge list里的IP,如果发现有和服务器或者路由表IP有重叠,就会丢弃该IP,导致报错。

这时,我们查看阿里云服务器路由表:route -n

可以看到,172网段其实是和Docker的list bridge里有重叠。

所以我们可以手动增加网卡,如图中所示:

sudo ip link add name docker0 type bridge
sudo ip addr add dev docker0 172.17.0.1/16

再重启docker应该就可以了:systemctl start docker

设置docker开机自启动:systemctl enable docker   

总结

我这边遇到的问题和解决方法就是上面这样。

也可以参考这篇文章:https://www.jb51.net/article/280108.htm

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • linux上安装Docker(非常简单的安装方法)

    最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗! Docker的三大核心概念:镜像.容器.仓库 镜像:类似虚拟机的镜像.用俗话说就是安装文件. 容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,可以将其启动.开始.停止.删除.而这些容器都是相互隔离.互不可见的. 仓库:类似代码仓库,是Docker集中存放镜像文件的场所. 简单介绍一下在CentOS上安装Docker. 前置条件: 64-bit 系统 kernel 3.10+ 1.检查内核版本,返回的值

  • Docker Desktop常见的几种启动失败问题解决方法

    目录 报错1,Error:Failed to restart 报错2,Error invoking remote method 'desktop-go-backend':[object Object] 报错3,无错误信息,一直卡在 Docker Desktop starting... 报错4,在Ubuntu for windows 中执行docker命令提示未找到 报错5,LxssManager无法启动,处于停止状态 总结 报错1,Error:Failed to restart 点Quit 然后

  • Docker 安装 Jenkins 并解决初始安装插件失败问题

    安装 Jenkins 后,初始化下载插件总是失败,导致安装不成功,重试好几次都是卡在安装插件那. 这里记录下 Docker 下怎么安装 Jenkins ,并解决初始安装插件失败问题. 安装插件失败,其实是拉取了官方的 Jenkins 镜像,然后在初始化安装插件时,会从国外的网站去获取,导致安装非常缓慢,或者安装失败.最好的解决方案时拉取 Jenkins 中文社区 提供的 Jenkins 镜像,即可解决.Jenkins 中文官网 :https://www.jenkins.io/zh/ 安装步骤获取

  • Linux服务器安装Docker,启动失败问题的解决

    目录 背景 启动失败 查看具体报错 & 解决 总结 背景 Docker启动失败的原因和使用了阿里云的源有关. 如果大家有使用到阿里云的源仓库,可以继续看下是否也可以解决问题. 启动失败 在Linux服务器上安装docker,执行docker 和docker version没有问题. 但是执行docker images等命令报错,按照提示首先 执行:systemctl status docker 可以看到,报错信息为“无法启动Docker应用的容器引擎”,这里其实只能看到启动失败,状态为faile

  • CentOS 7下MySQL服务启动失败的快速解决方法

    今天,启动MySQL服务器失败,如下所示: [root@spark01 ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe&qu

  • MySQL常见内存不足启动失败的完美解决方法

    1.启动MySQL时一直不成功,查看错误日志 /var/log/mysql/error.log 2.主要的错误信息有如下几条: [ERROR] InnoDB: mmap(136151040 bytes) failed; errno 12 [ERROR] InnoDB: Cannot allocate memory for the buffer pool [ERROR] InnoDB: Plugin initialization aborted with error Generic error [

  • jupyter notebook内核启动失败问题及解决方法

    当Anconda安装多个python环境时,或者由于多次卸载安装Anaconda时,导致python的kernel内核启动失败问题,使得jupyter notebook不可用.找不到启动文件.还有就是直接复制粘贴别人已经搭建好的环境过来,在kernel.json里面的启动内核环境还是原来的那个路径.如下图所示内核启动失败kernel error 点击原因,你可以看到,系统找不到指定文件的路径 本文的启动内核失败的原因是:直接复制另一台电脑上的环境,结果在kernel.json里的环境路径还是原来

  • phpStudy访问速度慢和启动失败的解决办法

    下面给大家介绍phpstudy访问速度慢的解决办法. 1.修改mysql数据库链接地址为ip地址127.0.0.1. 2.使用最新版本,这个坑了我好久时间. 下面一段内容是关于phpstudy启动失败的解决办法. php5.3.5.4和apache都是用vc9编译,电脑必须安装vc9运行库才能运行. php5.5.5.6是vc11编译,如用php5.5.5.6必须安装vc11运行库. vc9和vc11运行库下载:http://pan.baidu.com/s/1gd0y1Qb php5.5以上才有

  • mysql5.7.18安装时mysql服务启动失败的解决方法

    MySQL 是一个非常强大的关系型数据库.但有些初学者在安装配置的时候,遇到种种的困难,在此就不说安装过程了,说一下配置过程.在官网下载的mysql时候,有msi格式和zip格式.Msi直接运行安装即可,zip则解压在自己喜欢的目录地址即可.在安装这两种的时候,都需要配置才能用.以下介绍主要是msi格式默认的地址:C:\Program Files\ mysql-5.7.18-win32. 一.在安装或者解压后,需要配置环境变量,过程如下:我的电脑->属性->高级系统设置->高级->

  • mysq启动失败问题及场景分析

    一.一站式解决 1. 问题分析定位 # 找到MySQL的配置文件,复制mysql的数据目录 vim /etc/my.cnf # 进入msyql的数据目录 cd /data/mysql # 查看日志文件 vim mysql.err [ERROR] The server_uuid stored in auto.cnf file is not a valid UUID. [ERROR] Initialization of the server's UUID failed because it coul

  • docker.service启动失败:Unit not found的原因及解决办法

    背景 因为最近一直在折腾Kubernetes集群版本升级.Docker版本升级,所以不停的把测试环境安装.还原.升级.降级,简直乱的不行.终于,在测试Docker版本升级后,启动Docker时,遇到了docker.service: Unit not found.问题虽然不大,但是却折磨了我几个小时,所以在此mark一下. 操作系统:Red Hat Enterprise Linux 7 原因1:docker.socket 最初在启动docker时遇到问题,是因为docker.socket引起的,虽

  • 如何解决docker容器启动失败

    问题:电脑重启之后,docker里面的mysql容器重启不了,不知道是什么原因 上面的步骤:如果sudo docker start name 能重新启动,也就是输入:docker ps 能看到自己所需要的服务已经开启,那就不需要再进行下面的步骤了,如果刚好像上面那样,那就接着看下文: 解决办法:删除启动不了的容器,然后再重新运行镜像. 注意此时的容器名已经变为mysql了,为关闭状态,再运行镜像时还是运行不了,但此时再启动镜像时就可以启动了 内容补充 1.查看docker占用的挂载点 cat /

  • Docker Desktop启动失败的解决(Docker failed to initialize Docker Desktop is shutting down)

    目录 问题记录: 解决方法: 问题记录: 有一段时间没有使用docker了,突然要用到结果发现docker desktop都打不开了,会弹出如下错误: 一开始考虑的是会不会是docker版本太老的问题,使用docker version查了一下版本,发现cmd中docker指令还可以输出,但是docker version显示版本信息的同时也会有连接失败的错误信息存在.(而且查了一下版本并不落后,看来还是要解决初始化问题) docker version错误信息: error during conne

随机推荐