ProgramingTip

docker : 잘못된 참조 형식

bestdevel 2020. 12. 5. 10:22
반응형

docker : 잘못된 참조 형식


이 튜토리얼을보고 있습니다 : https://medium.com/towards-data-science/number-plate-detection-with-supervisely-and-tensorflow-part-1-e84c74d4382c

그리고 그들은 도커를 사용합니다. docker를 실행하려고 할 때 (run.sh 펼쳐서 내부) :

docker run -p 8888:8888 -v `pwd`/../src:/src -v `pwd`/../data:/data -w /src supervisely_anpr --rm -it bash

오류가 발생했습니다.

docker: invalid reference format.

나는 2 시간을 보냈고 무엇이 잘못되었는지 확인합니다. 어떤 아이디어라도 정말 감사합니다.


powershell에서는 ${pwd}를 많이 사용합니다.$(pwd)


플래그 또는 플래그에 대한 다음 변수가 아닌 "실행"다음의 첫 번째 인수는 이미지 이름으로 구문 분석됩니다. 해당 구문 분석이 실패하면 참조 형식, 일명 이미지 이름 (이미지 이미지, 고정 오류)이 오류에 대해 알려줍니다. 명령에서 :

 docker run -p 8888:8888 -v `pwd`/../src:/src -v `pwd`/../data:/data -w /src supervisely_anpr --rm -it bash

이미지 이름 "supervisely_anpr"이 유효했던 명령의 앞부분을 보게됩니다. 이 경우 오류는 pwd공백이있는 경로 출력 할 때 많은 가능성이 있습니다 . 공백 뒤의 모든 것은 더 이상 사용되는 변수가 사용되는 -v구문 분석합니다. 수정 사항은 공백이나 기타 특수 문자가 없음을 보장 할 수없는 경우 볼륨 변수를 인용하는 것입니다.

그렇게하면 다음 오류 "실행 파일을 제거 수 없음"이 발생합니다. 이미지 이름 뒤의 모든 컨테이너 컨테이너 내부에서 실행되는 명령으로 구문 분석됩니다. 귀하의 경우에는 내부에 바이너리로 존재하지

--rm -it bash않기 때문에 거의 확실하게 실패 할 명령을 실행하려고합니다 --rm. 순서를 변경해야합니다.

 docker run --rm -it -p 8888:8888 -v "`pwd`/../src:/src" -v "`pwd`/../data:/data" -w /src supervisely_anpr  bash

이 두 가지 오류와 원인에 대한 자세한 내용은 다음 슬라이드에 있습니다. https://sudo-bmitch.github.io/presentations/dc2018/faq-stackoverflow-lightning.html#29


신고 문제가 있습니다. 내가 가지고있는 작업은 $(pwd)도커를 던지는 공간이 있습니다.

공백이 디렉토리 이름을 변경하십시오. 이것이 작동하는 경우 작동합니다.


나는 같은 문제가 있었다. 원격 서버에서 도커 컨테이너를 실행하기 위해 bash 펼쳐를 만들었습니다.docker: invalid reference format.

old-start-container.sh

#!/bin/bash
docker run -p 80:5000 'dockerrepo/imagename:tag'

이것이 내가 고친 방법입니다. Docker 명령이 실행 가능한 bash 명령 대체사용했습니다 .

new-start-container.sh

#!/bin/bash
$(docker run -p 80:5000 'dockerrepo/imagename:tag')

참고 URL : https://stackoverflow.com/questions/45682010/docker-invalid-reference-format

반응형