Ошибка при попытке установить Docker CE на Linux Ubuntu 18.04 Bionic?

Чтение списков пакетов... Готово

Построение дерева зависимостей

Чтение информации о состоянии... Готово

Будут установлены следующие НОВЫЕ пакеты:

докер-в.п.

0 обновлено, 1 недавно установлено, 0 для удаления и 0 не обновлено.

Нужно получить 0 B/33,8 MB архивов.

После этой операции 181 MB дополнительного дискового пространства. (

Reading database ... 129600 files and directories currently installed.)
Preparing to unpack .../docker-ce_18.03.1~ce-0~ubuntu_amd64.deb ...
Unpacking docker-ce (18.03.1~ce-0~ubuntu) ...

dpkg: error processing archive /var/cache/apt/archives/docker-ce_18.03.1~ce-0~ubuntu_amd64.deb (--unpack):
 trying to overwrite '/usr/bin/docker-containerd', which is also in package docker-containerd 0.2.3+git+docker1.13.1~ds1-1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/docker-ce_18.03.1~ce-0~ubuntu_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

3 ответа

Я получил эту ошибку при попытке установить последнюю версию Docker (v20.10.17) на Ubuntu Focal 20.04 (LTS) в соответствии с официальной документацией . Я попытался установить более старые версии и получил ту же ошибку. При работеsudo dockerd --debugон показал реальную ошибку:

не удалось запустить демон: контрольная группа устройств не смонтирована

Cgroupfs (группы управления) — это механизм ядра для отслеживания и наложения ограничений на использование ресурсов для групп задач. Таким образом, решение состоит в том, чтобы смонтировать его. Обратите внимание, что вам нужно остановить демон контейнера перед монтированием контрольной группы, а затем снова запустить его после этого.

  1. Остановить демон

            sudo systemctl stop containerd
    
  2. Размонтируйте (на всякий случай), а затем смонтируйте cgroup

            sudo cgroupfs-umount 
    sudo cgroupfs-mount
    
  3. Запустите демон снова

            sudo systemctl start containerd
    sudo systemctl start docker.service
    sudo systemctl start docker.socket
    
  4. Если все еще есть ошибки, переустановите все

            sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
  5. Проверьте, работает ли Docker

            sudo docker run hello-world
    

Я не вижу 18.04 в списке поддерживаемых, поэтому вы можете столкнуться с проблемами совместимости, которые разработчики не успели решить. Чтобы обойти вашу непосредственную проблему, я бы удалил "docker-containerd" и любые другие зависимые пакеты, так как он, похоже, основан на очень старой версии docker (1.13).

apt remove docker-containerd

Шаг 01 - Удалите старую версию Docker

$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo rm -rf /var/lib/docker
$ sudo apt-get autoclean
$ sudo apt-get update

Шаг 02 - Установите Docker-ce:

Установите несколько необходимых пакетов, которые позволяют APT использовать пакеты через HTTPS:

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

Добавьте в систему ключ GPG для официального репозитория Docker:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Добавьте репозиторий Docker в источник APT:

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

Обновите базу данных пакетов

$ sudo apt update

Убедитесь, что вы собираетесь установить из репозитория Docker вместо репозитория Ubuntu по умолчанию.

$ apt-cache policy docker-ce

Наконец, установите Docker:

$ sudo apt install docker-ce

Убедитесь, что докер запущен

$ sudo systemctl status docker
Другие вопросы по тегам