无法在Ubuntu 16.04.2 LTS上启动docker(初始化graphdriver时出错)

时间:2017-07-14 13:05:29

标签: linux docker ubuntu-16.04

使用systemctl启动docker时遇到以下错误:

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

以下是我的表单启动服务的输出:

● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2017-07-14 18:23:13 IST; 2min 4s ago
     Docs: https://docs.docker.com
  Process: 6325 ExecStart=/usr/bin/dockerd -H fd:// (code=exited, status=1/FAILURE)
 Main PID: 6325 (code=exited, status=1/FAILURE)

Jul 14 18:23:12 iconlap02 systemd[1]: Starting Docker Application Container Engine...
Jul 14 18:23:12 iconlap02 dockerd[6325]: time="2017-07-14T18:23:12.415162784+05:30" level=info msg="libcontainerd: new containerd process, pid: 6333"
Jul 14 18:23:13 iconlap02 dockerd[6325]: Error starting daemon: error initializing graphdriver: /var/lib/docker contains several valid graphdrivers: aufs, overlay; Please cleanup or explicitly choose storage driver (-s <DRIVER>)
Jul 14 18:23:13 iconlap02 systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
Jul 14 18:23:13 iconlap02 systemd[1]: Failed to start Docker Application Container Engine.
Jul 14 18:23:13 iconlap02 systemd[1]: docker.service: Unit entered failed state.
Jul 14 18:23:13 iconlap02 systemd[1]: docker.service: Failed with result 'exit-code'.

3 个答案:

答案 0 :(得分:6)

我做了一些研究,我找到了答案。我能够通过使用overlay2作为存储驱动程序来解决问题。我按照以下链接:https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/

我采取了以下措施来解决问题:

  1. 停止Docker。

    sudo systemctl stop docker
    
  2. /var/lib/docker的内容复制到临时位置。

    cp -au /var/lib/docker /var/lib/docker.bk
    
  3. 修改/etc/docker/daemon.json。如果它还不存在:创建它。假设文件为空,请添加以下内容:

    {
      "storage-driver": "overlay2"
    }
    
  4. 启动Docker。

    sudo systemctl start docker
    
  5. 验证守护程序是否正在使用overlay / overlay2存储驱动程序。

    sudo docker info
    
  6. 在此之后我能够在我的“16.04.2 LTS(Xenial Xerus)”上运行docker容器

    sudo docker run -dit ubuntu
    

    Docker CE

    对于Docker CE,仅测试一些配置。您的操作系统内核可能不支持每个存储驱动程序。通常,以下配置适用于最新版本的Linux发行版:

    Linux发行版支持的存储驱动程序 Ubuntu aufs上的Docker CE,devicemapper,overlay2(Ubuntu 14.04.4或更高版本,16.04或更高版本),overlay,zfs

    https://github.com/moby/moby/issues/24023

答案 1 :(得分:0)

我已经在运行Debian Jessie的服务器上安装了Docker。我删除了Docker,并将服务器升级到Debian Stretch。但是未删除系统配置文件 /etc/systemd/system/docker.service.d/execWithDeviceMapper.conf 。该文件具有以下配置:存储引擎:devicemapper 。 devicemapper存储引擎无法与Debian Stretch配合使用。

我删除了systemd配置文件夹/etc/systemd/system/docker.service.d。我使用了以下命令: apt-get install docker-ce docker-ce-cli containerd.io 来毫无问题地安装Docker。

答案 2 :(得分:0)

blog post by Rowanto 中所述,在重新启动 docker 之前删除 /var/lib/docker/aufs 会有所帮助。

您可能会丢失一些数据(例如图像、容器),因此请谨慎操作!

sudo rm -rf /var/lib/docker/aufs

然后重启docker:

sudo service docker start