繁体   English   中英

无法在 Ubuntu 16.04.2 LTS 上启动 docker(初始化图形驱动程序时出错)

[英]Not able to start docker on Ubuntu 16.04.2 LTS (error initializing graphdriver)

使用 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.

下面是如果我 cat 形式启动服务的输出:

● 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'.

我做了一些研究,我找到了答案。 我能够通过使用 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

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

sudo docker run -dit ubuntu

码头工人

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

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

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

我在运行 Debian Jessie 的服务器上安装了 Docker。 我删除了 Docker 并将我的服务器升级到 Debian Stretch。 但是 systemd 配置文件/etc/systemd/system/docker.service.d/execWithDeviceMapper.conf没有被删除。 该文件具有配置: storage-engine: devicemapper devicemapper 存储引擎不适用于 Debian Stretch。

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

正如Rowanto博客文章中所述,它可以帮助在重新启动docker之前删除/var/lib/docker/aufs

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

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

之后重启docker:

sudo service docker start

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM