J'ai lancé la commande docker system Prune
hier, cela a pris du temps, puis ma session SSH a été déconnectée pour une raison différente.
Malheureusement, j'obtiens maintenant:
Error response from daemon: a Prune operation is already running
.
De toute évidence, il y a un verrou et la commande d'élagage n'est plus en cours d'exécution.
Est-ce que quelqu'un sait comment enlever le verrou sans arrêter et enlever tous les conteneurs?
EDIT: problème créé dans le référentiel: https://github.com/moby/moby/issues/36447
Le docker de redémarrage a fonctionné pour moi.
Ce problème semble se produire lorsqu'un conteneur ne répond pas au menu fixe.
Voici comment je l'ai corrigé:
Sudo docker inspect %CONTAINER ID%
inspect
ne renverra rien. %CONTAINER ID%
ne répondant pas a été identifié, trouvez son pid correspondant avec: ps -aux | grep %CONTAINER ID%
root 14931 0.0 0.0 7648 428 ? Sl Sep13 0:26 docker-containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/3b0d4cba3f63a71fda99c76f3f777a156056e559fb034da4ed59c0aa340e5669 -address /var/run/docker/containerd/docker-containerd.sock -containerd-binary /usr/bin/docker-containerd -runtime-root /var/run/docker/runtime-runc
kill -9 %PID%
Astuce 1: Il peut y avoir un ou plusieurs conteneurs ne répondant pas
Conseil n ° 2: pour éviter les temps morts, vous pouvez augmenter le service correspondant au conteneur qui ne répond pas avec un docker service scale ...
.
(Ma réponse complète celle de Dparkar.)
Solution de travail de la question github:
doublemcz a commenté le 14 mars
Je peux confirmer que Prune est bloqué à cause d'un conteneur qui ne répond pas. Quand je tue le conteneur en premier par kill -9 PROCESS_ID
où le processus Id je reçois de ps aux | grep docker-containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/CONTAINER_ID
Le problème est que vous devez savoir qu’un conteneur ne répond pas sur le menu fixe: -/Le conteneur fonctionne (c’est-à-dire que node.js fonctionne bien), mais docker n’est pas en mesure de le contrôler.
Btw ce conteneur ne devrait même pas être là parce que nous exécutons la mise à jour du service docker ... avec la dernière image:. Docker a créé un autre conteneur et cela n'a pas été tué. Donc, il y avait deux conteneurs en cours d'exécution avec deux versions différentes.