Il problema
Il pacchetto del motore Docker è stato aggiornato. Dopodiché l'utente non è in grado di avviare il servizio docker e ripristinarlo con l'errore "docker dead ma sottosistema bloccato" durante la verifica dello stato del servizio. In circostanze normali, la soluzione generale sarebbe rimuovere il file di blocco ei file morti del servizio. Questo non è applicabile in questa condizione.
# rm /var/run/docker/execdriver/native/ # rm /var/lock/subsys/docker
# docker info Cannot connect to the Docker daemon. Is the docker daemon running on this host?
# /etc/init.d/docker status docker dead but subsys locked
# /etc/init.d/docker start Starting docker: .......... [FAILED]
# rpm -qa | grep docker docker-engine-1.10.3-1.0.3.el6.x86_64 <<--- currently installed package
# uname -a Linux ol65-lxc 4.1.12-37.2.2.el6uek.x86_64 #2 SMP Thu May 5 11:45:35 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux
# tail -n 10 /var/log/docker Thu Jun 16 16:42:20 IST 2016 flag provided but not defined: -d See '/usr/bin/docker --help'. Thu Jun 16 16:47:44 IST 2016 flag provided but not defined: -d See '/usr/bin/docker --help'. Thu Jun 16 16:48:34 IST 2016 flag provided but not defined: -d See '/usr/bin/docker --help'. Thu Jun 16 17:04:03 IST 2016
La soluzione
C'è un problema di compatibilità del motore Docker con la versione del kernel UEK4. La soluzione al problema è eseguire il downgrade del pacchetto docker-engine alla versione precedente. Quando si esegue il comando "yum list" verrà mostrata solo l'ultima versione disponibile sotto il canale. Per mostrare la versione precedente è possibile utilizzare l'opzione "showduplicates" come mostrato di seguito. Successivamente è possibile rimuovere e installare il pacchetto come mostrato.
# yum list --showduplicates | grep -i docker-engine docker-engine.x86_64 1.10.3-1.0.3.el6 @ol6_addons docker-engine.x86_64 1.8.2-1.0.2.el6 ol6_addons docker-engine.x86_64 1.8.3-1.0.1.el6 ol6_addons docker-engine.x86_64 1.9.1-1.0.1.el6 ol6_addons docker-engine.x86_64 1.10.3-1.0.1.el6 ol6_addons docker-engine.x86_64 1.10.3-1.0.2.el6 ol6_addons docker-engine.x86_64 1.10.3-1.0.3.el6 ol6_addons
# yum remove docker-engine-1.10.3-1.0.3.el6.x86_64 -y
# yum install docker-engine-1.9.1-1.0.1.el6.x86_64 -y
Una volta completato può avviare con successo il servizio.
# /etc/init.d/docker start Starting docker: . [ OK ]
# /etc/init.d/docker status docker (pid 2416) is running...
# docker -d Warning: '-d' is deprecated, it will be removed soon. See usage. WARN[0000] please use 'docker daemon' instead. INFO[0000] [graphdriver] using prior storage driver "btrfs" INFO[0000] API listen on /var/run/docker.sock INFO[0000] Firewalld running: false INFO[0000] Default bridge (docker0) is assigned with an IP address 172.17.0.1/16. Daemon option --bip can be used to set a preferred IP address INFO[0000] Loading containers: start. INFO[0000] Loading containers: done. INFO[0000] Daemon has completed initialization INFO[0000] Docker daemon commit=08eb66d execdriver=native-0.2 graphdriver=btrfs version=1.9.1