Я попробовал выполнить установку, 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