Ubuntu 16.04无法启动Docker服务 [英] Unable to start Docker Service in Ubuntu 16.04

查看:870
本文介绍了Ubuntu 16.04无法启动Docker服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在使用Ubuntu 16.04上的 Docker(1.10),但安装失败,因为 Docker服务不启动
我已经尝试通过docker.io , docker-engine apt包和 curl -sSL https://安装docker get.docker.com/ |



我的主机信息是:



Linux Xenial 4.5.3-040503-generic#201605041831 SMP Wed May 4 22:33:50 UTC 2016 x86_64 x86_64 x86_64 GNU / Linux p>

这里是 systemctl status docker.service

 ●docker.service  -  Docker应用程序容器引擎
加载:已加载(/lib/systemd/system/docker.service; enabled;供应商预设:已启用)
活动:失败(结果:退出代码)从sáb涯-1415:17:31 CEST; 12分钟前
文件:https://docs.docker.com
进程:22479 ExecStart = / usr / bin / docker守护程序-H fd://(code = exited,status = 1 / FAILURE)
主PID:22479(code = exited,status = 1 / FAILURE)

可能14 15:17:30 Xenial docker [22479]:time =Samet-14T15:17 :30.103601523 + 02:00level = info msg =new containerd process,pid:22485\\\

可能14 15:17:31 Xenial docker [22479]:time =0045-14T15: 17:31.149064723 + 02:00level = error msg =devmapper:无法删除设备:devicemapper:无法设置任务名称/ dev / mapper / docker-8:6-2101297-pool
可能14 15:17:31 Xenial docker [22479]:time =Samet-14T15:17:31.149127439 + 02:00level = warning msg =devmapper:强烈建议不要使用环回设备, --storage-opt dm.thinpooldev`或使用`man docker`来引用dm.thinpooldev部分。
可能14 15:17:31 Xenial docker [22479]:time =Indones-14T15:17:31.153010028 + 02:00level = error msg =[graphdriver]以前的存储驱动程序\devicemapper \失败:devicemapper:无法设置任务名称/ dev / mapper / docker-8:6-2101297-pool
可能14 15:17:31 Xenial docker [22479]:time =2016- 05-14T15:17:31.153130839 + 02:00level = fatal msg =启动守护程序时出错:初始化graphdriver错误:devicemapper:无法设置任务名称/ dev / mapper / docker-8:6-2101297-pool
可能14 15:17:31 Xenial systemd [1]:docker.service:主进程退出,code = exited,status = 1 / FAILURE
可能14 15:17:31 Xenial docker [22479]: time =Samet-14T15:17:31 + 02:00level = info msg =在收到终止后停止containerd
可能14 15:17:31 Xenial systemd [1]:无法启动Docker应用集装箱发动机。
可能14 15:17:31 Xenial systemd [1]:docker.service:单位进入失败状态。
可能14 15:17:31 Xenial systemd [1]:docker.service:结果'exit-code'失败。

这里是 sudo docker守护程序-D

  DEBU [0000]找到docker组。 gid:999 
DEBU [0000]在unix(/var/run/docker.sock)上为HTTP创建的监听器
INFO [0000] containerd的上一个实例仍然存在(23050)
DEBU [ 0000] containerd连接状态更改:CONNECTING
DEBU [0000]使用默认日志记录驱动程序json-file
DEBU [0000] Golang的线程限制设置为55980
DEBU [0000]接收到containerd事件: & types.Event {Type:live,Id:,状态:0x0,Pid:,Timestamp:0x57372cae}
DEBU [0000] containerd连接状态更改:READY
DEBU [ 0000] devicemapper:驱动程序版本是4.34.0
DEBU [0000] devmapper:生成的前缀:docker-8:6-2101297
DEBU [0000] devmapper:检查pool docker-8的存在: 6-2101297-pool
DEBU [0000] devmapper:poolDataMajMin = 7:0 poolMetaMajMin = 7:1

DEBU [0000] devmapper:Major:设备的次要设备:/ dev / loop0 :7:0
DEBU [0000] devmapper:Major:设备的次要:/ dev / loop1是:7:1
DEBU [0000] devmapper: loadDeviceFilesOnStart()
DEBU [0000] devmapper:跳过文件/ var / lib / docker / devicemapper / metadata / transaction-metadata
DEBU [0000] devmapper:loadDeviceFilesOnStart()END
DEBU [0000 ] devmapper:constructDeviceIDMap()
DEBU [0000] devmapper:constructDeviceIDMap()END
DEBU [0000] devmapper:回滚打开事务:TransactionID = 1哈希= device_id = 1
ERRO [0000 ] devmapper:无法删除设备:devicemapper:无法设置任务名称/ dev / mapper / docker-8:6-2101297-pool
WARN [0000] devmapper:强制阻止环回设备的使用。请使用`--storage-opt dm.thinpooldev'或使用`man docker`来引用dm.thinpooldev部分。
DEBU [0000] devmapper:初始化base device-mapper thin volume
DEBU [0000] devicemapper:CreateDevice(poolName = / dev / mapper / docker-8:6-2101297-pool,deviceID = 1)
DEBU [0000] devmapper:创建设备时出错:devicemapper:无法设置任务名称/ dev / mapper / docker-8:6-2101297-pool
DEBU [0000] devmapper:错误设备setupBaseImage: devicemapper:无法设置任务名称/ dev / mapper / docker-8:6-2101297-pool
ERRO [0000] [graphdriver]以前的存储驱动程序devicemapper失败:devicemapper:无法设置任务名称/ dev / mapper / docker-8:6-2101297-pool
DEBU [0000]清理旧的mountid:启动。
FATA [0000]启动守护程序时出错:初始化graphdriver错误:devicemapper:无法设置任务名称/ dev / mapper / docker-8:6-2101297-pool
/ pre>

这里是 ./ check-config.sh 输出:

  warning:/ proc / config。 gz不存在,搜索其他路径的内核配置... 
信息:从/boot/config-4.5.3-040503-generic ...读取内核配置

一般必需:
- cgroup层次结构:正确挂载[/ sys / fs / cgroup]
- 已启用安装程序和工具
- CONFIG_NAMESPACES:enabled
- CONFIG_NET_NS:enabled
- CONFIG_PID_NS:启用
- CONFIG_IPC_NS:启用
- CONFIG_UTS_NS:启用
- CONFIG_DEVPTS_MULTIPLE_INSTANCES:enabled
- CONFIG_CGROUPS:enabled
- CONFIG_CGROUP_CPUACCT:enabled
- CONFIG_CGROUP_DEVICE:启用
- CONFIG_CGROUP_FREEZER:enabled
- CONFIG_CGRO UP_SCHED:启用
- CONFIG_CPUSETS:启用
- CONFIG_MEMCG:启用
- CONFIG_KEYS:启用
- CONFIG_MACVLAN:启用(作为模块)
- CONFIG_VETH:启用(作为模块)
- CONFIG_BRIDGE:启用(作为模块)
- CONFIG_BRIDGE_NETFILTER:启用(作为模块)
- CONFIG_NF_NAT_IPV4:启用(作为模块)
- CONFIG_IP_NF_FILTER:启用(作为模块)
- CONFIG_IP_NF_TARGET_MASQUERADE:启用(作为模块)
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE:启用(作为模块)
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK:启用(作为模块)
- CONFIG_NF_NAT:启用(作为模块)
- CONFIG_NF_NAT_NEEDED:启用
- CONFIG_POSIX_MQUEUE:启用

可选功能:
- CONFIG_USER_NS:启用
- CONFIG_SECCOMP:enabled
- CONFIG_CGROUP_PIDS:enabled
- CONFIG_MEMCG_KMEM:缺少
- CONFIG_MEMCG_SWAP:启用
- CONFIG_MEMCG_SWAP_ENABLED:缺少
(请注意,您的内核配置中未启用cgroup交换计费,您可以通过设置启动选项swapaccount = 1来启用它
- CONFIG_BLK_CGROUP:enabled
- CONFIG_BLK_DEV_THROTTLING:enabled
- CONFIG_IOSCHED_CFQ:enabled
- CONFIG_CFQ_GROUP_IOSCHED:enabled
- CONFIG_CGROUP_PERF:启用
- CONFIG_CGROUP_HUGETLB:启用
- CONFIG_NET_CLS_CGROUP:启用(作为模块)
- CONFIG_CGROUP_NET_PRIO:enabled
- CONFIG_CFS_BANDWIDTH:enabled
- CONFIG_FAIR_GROUP_SCHED:enabled
- CONFIG_RT_GROUP_SCHED:缺少
- CONFIG_EXT3_FS:缺少
- CONFIG_EXT3_FS_XATTR:缺少
- CONFIG_EXT3_FS_POSIX_ACL:缺少
- CONFIG_EXT3_FS_SECURITY:缺少
(如果您使用的是启用这些ext3配置ext3作为备份文件系统)
- CONFIG_EXT4_FS:启用
- CONFIG_EXT4_FS_POSIX_ACL:启用
- CONFIG_EXT4_FS_SECURITY:enabled
- 网络驱动程序:
- overlay:
- CONFIG_VXLAN:启用(作为模块)
- 存储驱动程序:
- aufs:
- CONFIG_AUFS_FS:missing
- btrfs:
- CONFIG_BTRFS_FS:启用(作为模块)
- devicemapper:
- CONFIG_BLK_DEV_DM:enabled
- CONFIG_DM_THIN_PROVISIONING:启用(作为模块)
- overlay:
- CONFIG_OVERLAY_FS:启用(作为模块)
- zfs:
- / dev / zfs:missing
- zfs命令:missing
- zpool命令:缺少

如果有人可以帮助我,我会非常感谢

解决方案

我有同样的问题,我尝试用Salva Cort的建议来修复它,但打印 / etc / default / docker 说:


#此文件不适用于SYSTEMD


所以这里是一个永久的修复适用于systemd (Ubuntu 15.04和更高):


  1. 创建一个新文件 /etc/systemd/system/docker.service.d /overlay.conf 机智h以下内容:

      [服务] 
    ExecStart =
    ExecStart = / usr / bin / docker daemon -H fd:// -s overlay


  2. 通过执行刷新更改:

      sudo systemctl守护进程


  3. 验证配置是否已经加载:

      systemctl show --property = ExecStart docker 


  4. 重新启动docker:

      sudo systemctl restart docker 



I've been trying to use Docker (1.10) on Ubuntu 16.04 but installation fails because Docker Service doesn't start. I've already tried to install docker by docker.io, docker-engine apt packages and curl -sSL https://get.docker.com/ | sh but it doesn't work.

My Host info is:

Linux Xenial 4.5.3-040503-generic #201605041831 SMP Wed May 4 22:33:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Here is systemctl status docker.service:

● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since sáb 2016-05-14 15:17:31 CEST; 12min ago
     Docs: https://docs.docker.com
  Process: 22479 ExecStart=/usr/bin/docker daemon -H fd:// (code=exited, status=1/FAILURE)
 Main PID: 22479 (code=exited, status=1/FAILURE)

may 14 15:17:30 Xenial docker[22479]: time="2016-05-14T15:17:30.103601523+02:00" level=info msg="New containerd process, pid: 22485\n"
may 14 15:17:31 Xenial docker[22479]: time="2016-05-14T15:17:31.149064723+02:00" level=error msg="devmapper: Unable to delete device: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool"
may 14 15:17:31 Xenial docker[22479]: time="2016-05-14T15:17:31.149127439+02:00" level=warning msg="devmapper: Usage of loopback devices is strongly discouraged for production use. Please use `--storage-opt dm.thinpooldev` or use `man docker` to refer to dm.thinpooldev section."
may 14 15:17:31 Xenial docker[22479]: time="2016-05-14T15:17:31.153010028+02:00" level=error msg="[graphdriver] prior storage driver \"devicemapper\" failed: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool"
may 14 15:17:31 Xenial docker[22479]: time="2016-05-14T15:17:31.153130839+02:00" level=fatal msg="Error starting daemon: error initializing graphdriver: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool"
may 14 15:17:31 Xenial systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
may 14 15:17:31 Xenial docker[22479]: time="2016-05-14T15:17:31+02:00" level=info msg="stopping containerd after receiving terminated"
may 14 15:17:31 Xenial systemd[1]: Failed to start Docker Application Container Engine.
may 14 15:17:31 Xenial systemd[1]: docker.service: Unit entered failed state.
may 14 15:17:31 Xenial systemd[1]: docker.service: Failed with result 'exit-code'.

Here is sudo docker daemon -D

DEBU[0000] docker group found. gid: 999                 
DEBU[0000] Listener created for HTTP on unix (/var/run/docker.sock) 
INFO[0000] previous instance of containerd still alive (23050) 
DEBU[0000] containerd connection state change: CONNECTING 
DEBU[0000] Using default logging driver json-file       
DEBU[0000] Golang's threads limit set to 55980          
DEBU[0000] received past containerd event: &types.Event{Type:"live", Id:"", Status:0x0, Pid:"", Timestamp:0x57372cae} 
DEBU[0000] containerd connection state change: READY    
DEBU[0000] devicemapper: driver version is 4.34.0       
DEBU[0000] devmapper: Generated prefix: docker-8:6-2101297 
DEBU[0000] devmapper: Checking for existence of the pool docker-8:6-2101297-pool 
DEBU[0000] devmapper: poolDataMajMin=7:0 poolMetaMajMin=7:1

DEBU[0000] devmapper: Major:Minor for device: /dev/loop0 is:7:0 
DEBU[0000] devmapper: Major:Minor for device: /dev/loop1 is:7:1 
DEBU[0000] devmapper: loadDeviceFilesOnStart()          
DEBU[0000] devmapper: Skipping file /var/lib/docker/devicemapper/metadata/transaction-metadata 
DEBU[0000] devmapper: loadDeviceFilesOnStart() END      
DEBU[0000] devmapper: constructDeviceIDMap()            
DEBU[0000] devmapper: constructDeviceIDMap() END        
DEBU[0000] devmapper: Rolling back open transaction: TransactionID=1 hash= device_id=1 
ERRO[0000] devmapper: Unable to delete device: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool 
WARN[0000] devmapper: Usage of loopback devices is strongly discouraged for production use. Please use `--storage-opt dm.thinpooldev` or use `man docker` to refer to dm.thinpooldev section. 
DEBU[0000] devmapper: Initializing base device-mapper thin volume 
DEBU[0000] devicemapper: CreateDevice(poolName=/dev/mapper/docker-8:6-2101297-pool, deviceID=1) 
DEBU[0000] devmapper: Error creating device: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool 
DEBU[0000] devmapper: Error device setupBaseImage: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool 
ERRO[0000] [graphdriver] prior storage driver "devicemapper" failed: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool 
DEBU[0000] Cleaning up old mountid : start.             
FATA[0000] Error starting daemon: error initializing graphdriver: devicemapper: Can't set task name /dev/mapper/docker-8:6-2101297-pool

Here is ./check-config.sh output:

warning: /proc/config.gz does not exist, searching other paths for kernel config ...
info: reading kernel config from /boot/config-4.5.3-040503-generic ...

Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- apparmor: enabled and tools installed
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_DEVPTS_MULTIPLE_INSTANCES: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: enabled
- CONFIG_KEYS: enabled
- CONFIG_MACVLAN: enabled (as module)
- CONFIG_VETH: enabled (as module)
- CONFIG_BRIDGE: enabled (as module)
- CONFIG_BRIDGE_NETFILTER: enabled (as module)
- CONFIG_NF_NAT_IPV4: enabled (as module)
- CONFIG_IP_NF_FILTER: enabled (as module)
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled (as module)
- CONFIG_NF_NAT: enabled (as module)
- CONFIG_NF_NAT_NEEDED: enabled
- CONFIG_POSIX_MQUEUE: enabled

Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: enabled
- CONFIG_CGROUP_PIDS: enabled
- CONFIG_MEMCG_KMEM: missing
- CONFIG_MEMCG_SWAP: enabled
- CONFIG_MEMCG_SWAP_ENABLED: missing
    (note that cgroup swap accounting is not enabled in your kernel config, you can enable it by setting boot option "swapaccount=1")
- CONFIG_BLK_CGROUP: enabled
- CONFIG_BLK_DEV_THROTTLING: enabled
- CONFIG_IOSCHED_CFQ: enabled
- CONFIG_CFQ_GROUP_IOSCHED: enabled
- CONFIG_CGROUP_PERF: enabled
- CONFIG_CGROUP_HUGETLB: enabled
- CONFIG_NET_CLS_CGROUP: enabled (as module)
- CONFIG_CGROUP_NET_PRIO: enabled
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_RT_GROUP_SCHED: missing
- CONFIG_EXT3_FS: missing
- CONFIG_EXT3_FS_XATTR: missing
- CONFIG_EXT3_FS_POSIX_ACL: missing
- CONFIG_EXT3_FS_SECURITY: missing
    (enable these ext3 configs if you are using ext3 as backing filesystem)
- CONFIG_EXT4_FS: enabled
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
- Network Drivers:
  - "overlay":
    - CONFIG_VXLAN: enabled (as module)
- Storage Drivers:
  - "aufs":
    - CONFIG_AUFS_FS: missing
  - "btrfs":
    - CONFIG_BTRFS_FS: enabled (as module)
  - "devicemapper":
    - CONFIG_BLK_DEV_DM: enabled
    - CONFIG_DM_THIN_PROVISIONING: enabled (as module)
  - "overlay":
    - CONFIG_OVERLAY_FS: enabled (as module)
  - "zfs":
    - /dev/zfs: missing
    - zfs command: missing
    - zpool command: missing

If someone could please help me I would be very thankful

解决方案

I had the same problem, and I tried fixing it with Salva Cort's suggestion, but printing /etc/default/docker says:

# THIS FILE DOES NOT APPLY TO SYSTEMD

So here's a permanent fix that works for systemd (Ubuntu 15.04 and higher):

  1. create a new file /etc/systemd/system/docker.service.d/overlay.conf with the following content:

    [Service]
    ExecStart=
    ExecStart=/usr/bin/docker daemon -H fd:// -s overlay
    

  2. flush changes by executing:

    sudo systemctl daemon-reload
    

  3. verify that the configuration has been loaded:

    systemctl show --property=ExecStart docker
    

  4. restart docker:

    sudo systemctl restart docker
    

这篇关于Ubuntu 16.04无法启动Docker服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆