Подпроцесс после установки docker-ce никогда не завершается

Подпроцесс после установки docker-ce никогда не завершается

Я попробовал выполнить установку, docker-ceследуя инструкциям, приведенным в официальной документации Docker.использование репозитория. Установка застряла на этом этапе:

Setting up docker-ce (17.09.0~ce-0~ubuntu) ...
insserv: warning: script 'K01postgresql-9.5' missing LSB tags and overrides
insserv: warning: script 'postgresql-9.5' missing LSB tags and overrides

После очень долгого ожидания я прервал процесс с помощью sudo killall apt-get. Теперь, когда я пытаюсь использовать команду, которая использует apt-get, она выдает следующее:

E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

Когда я запускаю эту команду, она просто начинает выполнять исходную команду, которая никогда не заканчивается. На данный момент я просто хочу решить эту проблему, даже не имея возможности запустить Docker (я просто хотел попробовать).

Я уже попробовал большинство ответов на этот вопрос.связанный вопрос. Я даже не могу им воспользоваться, sudo apt-get remove docker-ceпотому что столкнулся с той же проблемой.

Некоторая информация об установке Docker:

docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor  preset: e
Drop-In: /etc/systemd/system/docker.service.d
       └─ubuntu.conf
Active: activating (start) since mié 2017-11-22 15:38:31 CST; 7min ago
 Docs: https://docs.docker.com
Main PID: 1431 (docker)
Tasks: 6
Memory: 18.4M
  CPU: 21ms
CGroup: /system.slice/docker.service
       └─1431 /usr/bin/docker -d -H fd://

docker-ce:
Installed: 17.09.0~ce-0~ubuntu
Candidate: 17.09.0~ce-0~ubuntu
Version table:
*** 17.09.0~ce-0~ubuntu 100
    100 /var/lib/dpkg/status

Я использую Ubuntu 16.04.

решение1

Похоже, что docker-ceзависание происходит при запуске службы:

 \_ apt install docker-ce
     \_ /usr/bin/dpkg --status-fd 64 --configure --pending
         \_ /bin/sh /var/lib/dpkg/info/docker-ce.postinst configure
             \_ /bin/sh /usr/sbin/invoke-rc.d docker start
                 \_ systemctl start docker.service
                     \_ /bin/systemd-tty-ask-password-agent --watch

Процесса убийства systemctl start docker.serviceдолжно быть достаточно:

sudo kill -9 $(ps aux | grep "systemctl start docker.service" | head -n 1 | awk '{print $2}')

проверьте задания systemd:

sudo systemctl list-jobs
    JOB UNIT           TYPE  STATE  
2831057 docker.service start running

если запущено какое-либо задание Docker, завершите его:

sudo systemctl kill docker.service

Обязательно проверьте, что у вас не определены никакие переопределения:

/etc/systemd/system/docker.service.d/

например, переопределяющая команда (используется в 17.03релизе):

ExecStart=/usr/bin/docker daemon

вместо /usr/bin/dockerd. Перед продолжением обязательно завершите все оставшиеся процессы Docker:

ps aux | grep "[d]ockerd"

остановить оставшийся процесс демона Docker (если таковой имеется):

sudo kill -9 $(ps aux | grep "[d]ockerd" | head -n 1 | awk '{print $2}')

Если вы обновляете предыдущую версию Docker ( docker.ioи docker-engineт. д.) или просто меняете базовое хранилище файлов, безопаснее удалить все данные Docker перед установкой новой версии.

sudo rm -rf /var/lib/docker
sudo apt install docker-ce

Чтобы исправить сломанную установку, просто запустите sudo dpkg --configure -aи docker.serviceвсе должно заработать.

решение2

Я столкнулся с той же проблемой, вот все шаги, которые я сделал, чтобы полностью удалить docker. Надеюсь, это поможет

Остановка служб Docker

service docker stop

Снятие замков после прерванной установки

rm /var/lib/dpkg/lock

Восстановление

dpkg --configure -a

Если dpkg завис, остановите службу docker с другого терминала

service docker stop 

Удаление всех пакетов Docker и очистка

apt-get remove docker docker-engine docker.io docker-ce
apt-get purge docker docker-engine docker.io docker-ce
apt-get autoremove
apt-get autoclean

Удалить все файлы, связанные с Docker

rm -rf /lib/systemd/system/docker.service
rm -rf /etc/docker
rm -rf /var/lib/docker
rm -rf /run/docker.sock
rm -rf /etc/systemd/system/docker.service.d

Необязательно, обновление пакетов

apt-get update / upgrade / dist-upgrade

Перезагрузка

reboot

решение3

У меня вчера была такая же проблема. Я перезагрузил сервер:

sudo reboot

и перенастроенные пакеты:

sudo dpkg --configure -a

И проблема была решена.

решение4

У меня была точно такая же проблема, и я решил ее следующим образом (причиной моей проблемы было обновление Docker со старой версии до последней):

1.- Остановите службу Docker (которая пытается запуститься с помощью неверной команды демона): systemctl stop docker.service

2.- Измените синтаксис команды docker daemon в (который был изменен со старой на последнюю версию): /etc/systemd/system/docker.service.d/50-docker_dns.conf с: ExecStart=/usr/bin/docker daemon ... на: ExecStart=/usr/bin/dockerd ...

3.- Перезапустите демон Docker, чтобы загрузить новую конфигурацию: systemctl start docker.service

Связанный контент