Le premier argument après le "run" qui n'est pas un drapeau ou d'un paramètre à un drapeau est interprété comme un nom de l'image. Lorsque que l'analyse échoue, il vous indique le format de référence, en l'occurence, le nom de l'image (mais il pourrait être un id de l'image, épinglé une image ou un autre syntaxe) n'est pas valide. Dans votre commande:
docker run -p 8888:8888 -v `pwd`/../src:/src -v `pwd`/../data:/data -w /src supervisely_anpr --rm -it bash
Le nom de l'image "supervisely_anpr" est valide, alors vous devez regarder plus tôt dans la commande. Dans ce cas, l'erreur est le plus susceptible de pwd
de la sortie d'un chemin avec un espace. Après tout l'espace n'est plus un paramètre -v
et docker essaie de l'analyser comme le nom de l'image. La solution est de citer le volume des paramètres lorsque vous ne peut pas garantir qu'il est libre d'espaces ou d'autres caractères spéciaux.
Lorsque vous faites cela, vous allez rencontrer l'erreur suivante, "exécutable n'est pas trouvé". Tout ce qui est après le nom de l'image est analysée comme la commande à exécuter à l'intérieur du conteneur. Dans votre cas, essayez d'exécuter la commande --rm -it bash
qui sera presque certainement un échec depuis --rm
n'existe pas en tant que fichier binaire à l'intérieur de votre image. Vous avez besoin de réorganiser les paramètres à résoudre:
docker run --rm -it -p 8888:8888 -v "`pwd`/../src:/src" -v "`pwd`/../data:/data" -w /src supervisely_anpr bash
J'ai un peu plus de détails sur ces deux erreurs et causes dans mes slides ici: https://sudo-bmitch.github.io/presentations/dc2018/faq-stackoverflow-lightning.html#29