Как удалить докер-движок?

Я установил докер с помощью

curl -sSL https://get.docker.com/ | sh

Когда я попытался удалить пакет, я столкнулся со следующей ошибкой

$ sudo apt-get remove docker-engine
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  docker-engine
0 upgraded, 0 newly installed, 1 to remove and 5 not upgraded.
1 not fully installed or removed.
After this operation, 28.5 MB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 454135 files and directories currently installed.)
Removing docker-engine (1.8.2-0~vivid) ...
Failed to stop docker.service: Unit docker.service not loaded.
invoke-rc.d: initscript docker, action "stop" failed.
dpkg: error processing package docker-engine (--remove):
 subprocess installed pre-removal script returned error exit status 5
dpkg: error while cleaning up:
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 docker-engine
E: Sub-process /usr/bin/dpkg returned an error code (1)

Как мне удалить пакет докеров?

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

Ответ 1

Попробуйте

sudo mv /var/lib/dpkg/info/{packagename}.* /tmp/
sudo dpkg --remove --force-remove-reinstreq {packagename}
sudo apt-get remove {packagename}
sudo apt-get autoremove && sudo apt-get autoclean

Ответ 2

У меня была та же проблема, но в Ubuntu 14.04. Способ решения этой проблемы:

Сначала удалите неверные ссылки:

sudo mv /var/lib/dpkg/info/{packagename}.* /tmp/
sudo apt-get remove {packagename}

Итак, теперь вы можете установить его еще раз:

sudo apt-get install docker-engine

Вот и все.

Ответ 3

Не похож на конкретную проблему Docker, а не на общую проблему с установкой.

Доклер когда-либо работал на этой машине (как в: была ли установка даже успешной?)

Я бы начал изучать Failed to stop docker.service: Unit docker.service not loaded и посмотреть, не приведет ли это к дальнейшему пониманию того, что происходит не так. Похоже, что он не может остановить службу.

Вам может потребоваться немного узнать о systemd, я рекомендую эту страницу. journalctl также может быть полезен, см. здесь.

И затем:

  • Существует ли docker.service?
  • Можно ли его загрузить?
  • Каков его статус?
  • Что он скажет, если вы начнете его?
  • Остановить его?

ps: Не большой поклонник полностью автоматизированных сценариев установки. Я не вижу, что не так с apt-get install docker-engine...

Ответ 4

Если вы хотите удалить все, которое поставляется с панелью инструментов Docker (, включая Docker Engine).

Вы можете выполнить эту оболочку script:

#!/bin/bash

# Uninstall Script

if [ "${USER}" != "root" ]; then
    echo "$0 must be run as root!"
    exit 2
fi

while true; do
  read -p "Remove all Docker Machine VMs? (Y/N): " yn
  case $yn in
    [Yy]* ) docker-machine rm -f $(docker-machine ls -q); break;;
    [Nn]* ) break;;
    * ) echo "Please answer yes or no."; exit 1;;
  esac
done

echo "Removing Applications..."
rm -rf /Applications/Docker

echo "Removing docker binaries..."
rm -f /usr/local/bin/docker
rm -f /usr/local/bin/docker-machine
rm -r /usr/local/bin/docker-machine-driver*
rm -f /usr/local/bin/docker-compose

echo "Removing boot2docker.iso"
rm -rf /usr/local/share/boot2docker

echo "All Done!"

Если у вас все еще есть обесцененный Boot2docker, и вы также хотите избавиться от него.

Вы можете удалить его, выполнив следующую оболочку script:

#!/bin/bash

# Uninstall Script

if [ "$(which boot2docker)" == "" ]; then
    echo "boot2docker does not exist on your machine!"
    exit 1
fi

if [ "${USER}" != "root" ]; then
    echo "$0 must be run as root!"
    exit 2
fi

echo "Stopping boot2docker processes..."
boot2docker stop && boot2docker delete

echo "Removing boot2docker executable..."
rm -f /usr/local/bin/boot2docker

echo "Removing boot2docker ISO and socket files..."
rm -rf ~/.boot2docker
rm -rf /usr/local/share/boot2docker

echo "Removing boot2docker SSH keys..."
rm -f ~/.ssh/id_boot2docker*

echo "Removing boot2docker OSX files..."
rm -f /private/var/db/receipts/io.boot2docker.*
rm -f /private/var/db/receipts/io.boot2dockeriso.*

echo "Removing Docker executable..."
rm -f /usr/local/bin/docker

echo "All Done!"