Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 无法在Ubuntu 16.04中启动Docker服务_Linux_Ubuntu_Docker_Virtualization_Systemctl - Fatal编程技术网

Linux 无法在Ubuntu 16.04中启动Docker服务

Linux 无法在Ubuntu 16.04中启动Docker服务,linux,ubuntu,docker,virtualization,systemctl,Linux,Ubuntu,Docker,Virtualization,Systemctl,我一直试图在Ubuntu 16.04上使用Docker(1.10),但安装失败,因为Docker服务没有启动。 我已经尝试通过docker.io、docker引擎apt包和curl-sSL安装dockerhttps://get.docker.com/ |sh但它不起作用 我的主机信息是: Linux Xenial 4.5.3-040503-generic#201605041831 SMP星期三5月4日22:33:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

我一直试图在Ubuntu 16.04上使用Docker(1.10),但安装失败,因为Docker服务没有启动。 我已经尝试通过docker.io、docker引擎apt包和
curl-sSL安装dockerhttps://get.docker.com/ |sh
但它不起作用

我的主机信息是:

Linux Xenial 4.5.3-040503-generic#201605041831 SMP星期三5月4日22:33:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

这里是systemctl状态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'.
这里是sudocker守护进程-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
以下是输出:

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

如果有人能帮助我,我会非常感激的。嗯,我终于修好了

你所要做的一切就是加载一个不同的,在我的例子中,我将使用
覆盖

● 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'.
  • 禁用Docker服务
    sudo systemctl停止Docker.service
  • 启动Docker Daemon
    overlay
    driver):
    sudo Docker Daemon-s overlay
  • 运行演示容器
    sudo docker运行hello world
  • 为了使这些更改永久化,您必须编辑
    /etc/default/docker
    文件并添加选项:

    DOCKER\u OPTS=“-s overlay”


    下次加载Docker服务时,它将运行Docker守护进程-s overlay

    在更新版本的docker和Ubuntu中,docker的单位文件似乎只是被屏蔽(指向/dev/null)。
    您可以通过在终端中运行以下命令进行验证:

    sudo file /lib/systemd/system/docker.service
    sudo file /lib/systemd/system/docker.socket
    
    您应该看到单元文件符号链接到/dev/null。
    在这种情况下,您只需遵循S34N的建议,然后运行:

    sudo systemctl unmask docker.service
    sudo systemctl unmask docker.socket
    sudo systemctl start docker.service
    sudo systemctl status docker
    
    我还将保留原始帖子,其中回答了错误日志,指出应更换存储驱动程序:

    原创帖子

    我也有同样的问题,我试着用Salva Cort的建议来解决它,但打印
    /etc/default/docker
    会显示:

    #此文件不适用于SYSTEMD

    所以这里有一个永久的修复(Ubuntu 15.04及更高版本):

  • 创建一个包含以下内容的新文件
    /etc/systemd/system/docker.service.d/overlay.conf

    [Service]
    ExecStart=
    ExecStart=/usr/bin/docker daemon -H fd:// -s overlay
    
  • 通过执行以下命令刷新更改:

    sudo systemctl daemon-reload
    
    sudo systemctl daemon-reload
    
  • 验证配置是否已加载:

    systemctl show --property=ExecStart docker
    
  • 重新启动docker:

    sudo systemctl restart docker
    
    sudo systemctl restart docker
    

  • 我已经能够让它在内核升级后工作,按照这个博客中的说明


    在查看一些其他答案后,问题似乎是服务没有使用
    -s overlay
    选项运行

    我还碰巧注意到docker试图在调用结束时启动
    ${docker\u OPTS}


    我能够
    导出DOCKER\u OPTS=“-s overlay”
    (默认情况下,bc DOCKER\u OPTS为空)并让DOCKER运行。

    通过DOCKER机器将DOCKER从17.05-ce升级到17.06-ce后,我遇到了同样的问题

  • 更新/etc/systemd/system/docker.service.d/10-machine.conf

    替换

    `docker daemon` => `dockerd`
    
    来自

    [Service]
    ExecStart=
    ExecStart=/usr/bin/docker deamon -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic
    Environment=
    

  • 通过执行以下命令刷新更改:

    sudo systemctl daemon-reload
    
    sudo systemctl daemon-reload
    
  • 重新启动docker:

    sudo systemctl restart docker
    
    sudo systemctl restart docker
    

  • 至于我,我有这个错误

    docker.service的作业失败,因为控制进程已退出,并显示错误代码。有关详细信息,请参阅“systemctl status docker.service”和“journalctl-xe”。

    最后,我发现了
    /etc/docker/daemon.json
    错误,因为我添加了
    注册表镜像

    {
        "runtimes": {
    
            "nvidia": {
                "path": "/usr/bin/nvidia-container-runtime",
                "runtimeArgs": []
            }
        }    
    
        # I forget to add a comma , here !!!!!!!
        "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
    }
    

    在我添加它之后,然后
    systemctl restart docker
    ,我解决了它。

    下面的解蔽命令对我有效(Ubuntu 18)。希望它能帮助其他人…:-)


    在我的例子中,我从
    journalctl-xe命令

    unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character 'â' looking for beginning of object key string
    
    只需使用

    {
    }
    

    在升级到ubuntu内核后,我今天遇到了这个问题,并尝试了上述多种解决方案。然而,唯一有效的方法(Ubuntu 16.04.6 LTS)是删除(或重命名)文件夹:/var/lib/docker

    请注意,这将删除您的所有docker映像、容器和卷等。因此,请在应用或进行备份之前了解其含义

    详情如下:

    在Ubuntu 18.04.3 LTS上新安装的Docker(版本19.03.3-rc1)上,我遇到了类似的问题。默认情况下,新安装中不存在/etc/docker/daemon.json文件。在一个教程之后,我通过创建一个新的daemon.json文件将存储驱动程序更改为devicemapper。它工作了,但我删除了daemon.json文件,认为它会恢复为默认值,但不起作用,服务也不会启动

    使用默认的存储驱动程序再次创建/etc/docker/daemon.json文件为我解决了这个问题

    {
        "storage-driver": "overlay2"
    }
    

    sudo dockerd--debug
    将有助于修复实际的痛点我在ubuntu 20 LTS上用它修复了相同的错误

    您重新启动了系统吗?是的,我重新启动了,我已经解决了这个问题,正如我解释的那样,如果您将所有
    docker
    更改为
    nvidia docker
    ,我必须从
    /etc/systemd/system/docker.service
    中的相应行添加整个命令行才能使其正常工作。第1步是重写所有命令行参数,在我的例子中丢失了很多参数。这个答案(不是链接答案)似乎不再有效,至少在Ubuntu 16.04,Docker 17.12.1-ce版上是这样。有一个错误阻止服务启动,其中包含消息“ExecStart=/usr/bin/docker daemon-H fd://-s overlay(code=exited,status=125)”和“unknown shorthand flag:'s'in-s”,因此显然不再支持-s标志。如果简化