Pierwszy argument po „uruchomieniu”, który nie jest flagą ani parametrem flagi, jest analizowany jako nazwa obrazu. Gdy ta analiza nie powiedzie się, informuje, że format odniesienia, czyli nazwa obrazu (ale może to być identyfikator obrazu, przypięty obraz lub inna składnia) jest nieprawidłowy. Na Twoje polecenie:
docker run -p 8888:8888 -v `pwd`/../src:/src -v `pwd`/../data:/data -w /src supervisely_anpr --rm -it bash
Nazwa obrazu „supervisely_anpr” jest prawidłowa, więc należy spojrzeć wcześniej w poleceniu. W tym przypadku błąd najprawdopodobniej wynika z pwdwyprowadzenia ścieżki ze spacją. Wszystko, co znajduje się za spacją, nie jest już parametrem, -va docker próbuje przeanalizować go jako nazwę obrazu. Rozwiązaniem jest cytowanie parametrów woluminu, gdy nie można zagwarantować, że jest on wolny od spacji lub innych znaków specjalnych.
Gdy to zrobisz, napotkasz następny błąd „Nie znaleziono pliku wykonywalnego”. Wszystko po nazwie obrazu jest analizowane jako polecenie do uruchomienia wewnątrz kontenera. W twoim przypadku spróbuje uruchomić polecenie, --rm -it bashktóre prawie na pewno się nie powiedzie, ponieważ nie --rmbędzie istnieć jako plik binarny w twoim obrazie. Musisz zmienić kolejność parametrów, aby rozwiązać ten problem:
docker run --rm -it -p 8888:8888 -v "`pwd`/../src:/src" -v "`pwd`/../data:/data" -w /src supervisely_anpr bash
Mam więcej szczegółów na temat tych dwóch błędów i przyczyn na moich slajdach tutaj: https://sudo-bmitch.github.io/presentations/dc2018/faq-stackoverflow-lightning.html#29
docker run -p 8888:8888 -v "`pwd`/../src":/src -v "`pwd`/../data":/data -w /src --rm -it supervisely_anpr bash