web-dev-qa-db-fra.com

obtenir une erreur lors de l'installation de docker: "docker-ce: dépend: containerd.io (> = 1.2.2-3) mais il ne va pas être installé"

J'essaie d'installer Docker sur mon Ubuntu 18.04, mais je reçois cette erreur:

The following packages have unmet dependencies:
  docker-ce : Depends: containerd.io (>= 1.2.2-3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Que dois-je faire pour le réparer?

11
vatsalay

Vous devez installer le package containerd, voici comment je l'ai résolu.

$ curl -O https://download.docker.com/linux/ubuntu/dists/bionic/pool/Edge/AMD64/containerd.io_1.2.2-3_AMD64.deb

$ Sudo apt install ./containerd.io_1.2.2-3_AMD64.deb 
5
prashant
Sudo snap install docker

Ubuntu 18.04, cela a fonctionné pour moi.

Les liens suivants ne fonctionnaient pas

  1. https://docs.docker.com/install/linux/docker-ce/ubuntu/
  2. https://phoenixnap.com/kb/how-to-install-docker-on-ubuntu-18-04
  3. https://containerd.io/downloads/
3
Aseem

Y a-t-il un problème ouvert dans github pour cela https://github.com/docker/for-linux/issues/832 et quelques solutions de contournement là-bas. Il n'y a pas encore de paquets stables pour Eoan. Certaines solutions de contournement sont les suivantes:

  • Installer manuellement containerd à partir d'Ubuntu bionic (et mettre à niveau manuellement si nécessaire)
  • Utilisez plutôt le référentiel bionique
  • Utilisez un référentiel de test ou de nuit plutôt stable.

Il existe une version disponible dans snap mais elle est trop ancienne (18.x) et il y a le package docker.io dans les référentiels d'univers (19.03, pas le dernier, mais plus récent que snap).

0
felipeaf

Éditer /etc/apt/sources.list

Sur cette ligne:

deb [Arch=AMD64] https://download.docker.com/linux/ubuntu eoan stable

Remplacez eoan par bionic

Courir Sudo apt update, puis réessayez d'installer docker-ce

0
luds

Dans Ubuntu 19.10, vous pouvez installer docker en installant le package docker.io, qui a containerd et runc comme dépendances. Vous pouvez également installer docker-ce, docker-ce-cli directement depuis le référentiel docker comme expliqué ici https://docs.docker.com/install/linux/docker-ce/ubuntu/ . Dans cette approche alternative, les dépendances containerd et runc sont remplacées par une seule dépendance containerd.io. Le problème est que, pour une raison étrange, containerd.io n'est pas dans le référentiel docker. Vous devez donc l'installer manuellement comme suggéré dans https://askubuntu.com/a/1190896/456438 .

Notez que containerd.io est dit (dans le package lui-même) comme un remplacement valide pour containerd et runc. L'inverse n'est pas confirmé, mais si vous modifiez les packages docker-ce et remplacez la dépendance pour containerd.io avec containerd, ça marche: j'ai suivi les instructions dans https://fabianlee.org/2018/09/28/ubuntu-customizing-and-repacking-a-deb-file/ pour changer la dépendance dans le package (sans Sudo):

cd $(mktemp -d -t docker-XXX)
apt download docker-ce 
ar xf docker-ce_*.deb
mkdir DEBIAN
tar xf control.tar.xz -C DEBIAN

La première commande crée uniquement un répertoire temporaire et un CD dans celui-ci. Le reste extrait 5 fichiers du package dans le sous-répertoire DEBIAN. J'ai édité le fichier DEBIAN/control changer containerd.io à containerd et enregistré le fichier. J'ai continué avec les instructions pour reconstruire le paquet:

tar -C DEBIAN -cJf control.tar.xz .
ar rcs docker-ce.deb debian-binary control.tar.xz data.tar.xz

Cela crée un nouveau fichier deb docker-ce.deb dans le répertoire temporaire. J'ai suivi les instructions ici https://docs.docker.com/install/linux/docker-ce/ubuntu/ mais dans Sudo apt install ... commandes que j'ai remplacées containerd.io avec containerd et docker-ce avec ./docker-ce.deb. Ça a marché ! Testé avec docker run hello-world.

0
Dominic108