2016-05-14 33 views
20

Próbowałem użyć Döcker (1.10) na Ubuntu 16.04 ale instalacja nie powiedzie się, ponieważ Docker Serwis nie rozpocznie. Próbowałem już zainstalować docker przez docker.io, doker-engine apt apt i curl -sSL https://get.docker.com/ | sh, ale to nie działa.Nie można uruchomić usługi Docker w Ubuntu 16.04

Moja informacji Host jest:

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

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

Oto 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 

Oto ./check-config.sh wyjściowa:

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 

Jeśli ktoś mógłby mi pomóc byłbym bardzo wdzięczny

+0

Czy uruchomiłeś ponownie system? –

+0

Tak, zrobiłem, już rozwiązałem problem, tłumaczę poniżej –

Odpowiedz

42

miałem ten sam problem i próbowałem go naprawić z sugestią Salva Cort, w ale drukowanie /etc/default/docker mówi:

# Ten plik nie ZASTOSOWANIA DO Systemd

Oto trwała naprawa that works for systemd (Ubuntu 15.04 i wyżej):

  1. utworzyć nowy plik /etc/systemd/system/docker.service.d/overlay.conf o następującej treści:

    [Service] 
    ExecStart= 
    ExecStart=/usr/bin/docker daemon -H fd:// -s overlay 
    
  2. przemywać zmiany wykonując:

    sudo systemctl daemon-reload 
    
  3. sprawdzić, czy konfiguracja została załadowana :

    systemctl show --property=ExecStart docker 
    
  4. restart doker:

    sudo systemctl restart docker 
    
+0

Działa również dla [nvidia-docker] (https://github.com/NVIDIA/nvidia-docker) jeśli zmienisz wszystkie 'docker' na' nvidia-docker' – Laurenz

+2

Musiałem dodać całą linię poleceń z odpowiedniego w '/ etc/systemd/system/docker.service', aby to działało. Krok 1 jako podany właśnie nadpisał wszystkie argumenty wiersza poleceń, tracąc wiele argumentów w moim przypadku. – rep

+0

dzięki, działa dla mnie – FabioNoth

9

Cóż, w końcu naprawiłem go

Wszystko co musisz zrobić, to Załaduj inny storage-driver w moim przypadku użyję overlay :

  1. Wyłącz Docker serwis: sudo systemctl stop docker.service
  2. start Docker Daemon (overlay kierowca): sudo docker daemon -s overlay
  3. Run Demo pojemnik: sudo docker run hello-world

W celu dokonania tych zmian stały, musisz edytować /etc/default/docker plik i dodać opcję:

DOCKER_OPTS="-s overlay"

Następnym razem serwis Docker ładowane, to będzie działać docker daemon -s overlay

+0

Przykro mi to mówić, ale edycja/etc/default/docker NIE działa w systemie Ubuntu. Nadal utknie jak pierwotny problem. Jednak "sudo docker daemon -s overlay" zawsze działa. Polecam za każdym razem przy pomocy tego polecenia. Dzięki. –

1

Po obejrzeniu niektórych innych odpowiedzi wygląda sprawa, że ​​usługa nie została uruchomiona z opcjami -s overlay.

Zdarzyło mi się również zauważyć, że dokowanie próbowało uruchomić się pod numerem ${DOCKER_OPTS} po zakończeniu połączenia.

Udało mi się export DOCKER_OPTS="-s overlay" (domyślnie bc domyślnie DOCKER_OPTS było puste) i uruchomiłem okno dokowane.

9

miałem ten sam problem po aktualizacji dokowanym od 17.05 do 17.06-ce-ce poprzez Döcker automatyczna

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

    wymienić

    `docker daemon` => `dockerd` 
    

    przykład z

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

    do

    [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. zmiany przemywać przez wykonanie:

    sudo systemctl daemon-reload 
    
  3. restart dokowane:

    sudo systemctl restart docker 
    
+0

Jesteś mężczyzną! Wielkie dzięki! – FlorianKempenich

0

Co do mnie, mam ten błąd.

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

Wreszcie znalazłem, to błąd /etc/docker/daemon.json, bo dodać 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"] 
} 

Po dodam go, a następnie systemctl restart docker, ja go rozwiązał.