2016-05-14 36 views
20

Ich habe versucht, Docker zu verwenden (1.10) auf Ubuntu 16.04 aber die Installation nicht gestartet werden, weil Docker Dienst nicht beginnt. Ich habe bereits versucht, Andockfenster von docker.io, Docker-Engine Apt-Pakete und curl -sSL https://get.docker.com/ | sh zu installieren, aber es funktioniert nicht.kann nicht Docker Dienst in Ubuntu 16.04

Mein Host-Info ist:

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

ist hier 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'. 

Hier ist 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 

Hier ist ./check-config.sh Ausgabe:

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 

Wenn jemand könnte mir bitte helfen, ich wäre sehr dankbar

+0

Haben Sie das System neu gestartet? –

+0

Ja ich tat, ich habe das Problem bereits gelöst, wie ich unten erklären –

Antwort

42

hatte ich das gleiche Problem, und ich versuchte es mit Salva Cort Vorschlag zur Festsetzung, aber /etc/default/docker Druck sagt:

# THIS FILE NICHT Systemd GILT

Also hier ist eine dauerhafte Lösung that works for systemd (Ubuntu 15.04 und höher):

  1. eine neue Datei /etc/systemd/system/docker.service.d/overlay.conf mit folgendem Inhalt:

    [Service] 
    ExecStart= 
    ExecStart=/usr/bin/docker daemon -H fd:// -s overlay 
    
  2. bündig Änderungen durch Ausführung:

    sudo systemctl daemon-reload 
    
  3. überprüfen, ob die Konfiguration geladen wurde :

    systemctl show --property=ExecStart docker 
    
  4. Neustart Docker:

    sudo systemctl restart docker 
    
+0

Funktioniert auch für [nvidia-docker] (https://github.com/NVIDIA/nvidia-docker), wenn Sie alle "Docker" zu "nvidia-docker" ändern – Laurenz

+2

Ich musste die gesamte Befehlszeile aus dem entsprechenden hinzufügen Zeile in '/ etc/systemd/system/docker.service' um dies zum Laufen zu bringen. Der erste Schritt überschrieb alle Befehlszeilenargumente und verlor in meinem Fall viele Argumente. – rep

+0

danke, funktioniert für mich – FabioNoth

9

Nun, endlich ich es feste

Alles, was Sie tun müssen, ist zu lade eine andere storage-driver in meinem Fall werde ich overlay verwenden :

  1. Disable Docker Service: sudo systemctl stop docker.service
  2. starten Docker Daemon (overlay-Treiber): sudo docker daemon -s overlay
  3. Run Demo Behälter: sudo docker run hello-world

Um diese Änderungen vorzunehmen, permanent, müssen Sie bearbeiten-Datei und fügen Sie die Option:

DOCKER_OPTS="-s overlay"

Das nächste Mal Docker Service geladen werden, es laufen wird docker daemon -s overlay

+0

Tut mir leid zu sagen, aber die Bearbeitung der/etc/default/docker funktioniert nicht auf Ubuntu. Es bleibt immer noch hängen wie das ursprüngliche Problem. "Sudo docker-daemon -s overlay" funktioniert jedoch immer. Ich werde jedes Mal mit diesem Befehl gehen. Vielen Dank. –

1

Nachdem ich einige der anderen Antworten sehen es sieht aus wie das Problem, dass der Dienst nicht mit den -s overlay Optionen ausgeführt wurde.

Ich zufällig auch, dass Docker versucht, mit ${DOCKER_OPTS} am Ende des Anrufs zu starten.

Ich konnte export DOCKER_OPTS="-s overlay" (BC standardmäßig DOCKER_OPTS war leer) und Docker laufen.

9

hatte ich das gleiche Problem nach dem Upgrade Docker von 17,05-ce zu 17,06-ce über Docker-Maschine

  1. aktualisieren /etc/systemd/system/docker.service.d/10-machine.conf

    `docker daemon` => `dockerd` 
    

    Beispiel aus

    [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= 
    
    ersetzen

    zu

    [Service] 
    ExecStart= 
    ExecStart=/usr/bin/dockerd -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= 
    
  2. bündig Änderungen durch Ausführung:

    sudo systemctl daemon-reload 
    
  3. Neustart Docker:

    sudo systemctl restart docker 
    
+0

Du bist der Mann! Danke vielmals! – FlorianKempenich

0

Wie mir, habe ich diesen Fehler.

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

Schließlich fand ich, den /etc/docker/daemon.json Fehler, denn ich registry-mirrors

{ 
    "runtimes": { 

     "nvidia": { 
      "path": "/usr/bin/nvidia-container-runtime", 
      "runtimeArgs": [] 
     } 
    }  

    # I forget to add a comma , here !!!!!!! 
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] 
} 

hinzufügen Nachdem ich es hinzufügen, dann systemctl restart docker, ich löste es.