Команда Docker возвращает "неверный формат ссылки"
Я использую docker и использую следующую команду:
docker run -d -p 9090:80 -v $(pwd):/usr/share/nginx/html nginx:alpine
указать на мой /dist
папка, в которой мои app-файлы скомпилированы по угловым.
Я сначала иду в /dist
папку, а затем запустите команду оттуда. Это работало нормально, и я смог добраться до приложения через порт: 9090
, но после обновления докера я запускаю по ошибке:
docker: invalid reference format.
See 'docker run --help'.
Я искал и проверил следующий докер сообщений: неверный формат ссылки, но, похоже, он отличается от моей проблемы. Вот информация, основанная на команде: docker version
:
Client:
Version: 17.09.0-ce
API version: 1.32
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:40:09 2017
OS/Arch: darwin/amd64
Server:
Version: 17.09.0-ce
API version: 1.32 (minimum version 1.12)
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:45:38 2017
OS/Arch: linux/amd64
Experimental: false
Любая идея, пожалуйста?
7 ответов
Докер видит что-то неожиданное перед именем изображения, заставляя его думать что-то в вашей команде, кроме nginx:alpine
это имя вашего изображения. Это может быть недействительным -
перед каждым из ваших вариантов, часто с копией / вставкой из Интернета. Это также может быть место на вашем пути. Если это так же просто, как пробел на вашем пути, тогда цитирование решит это:
docker run -d -p 9090:80 -v "$(pwd):/usr/share/nginx/html" nginx:alpine
Если два указанных выше вопроса не помогли решить проблему, сначала убедитесь, что работает следующее:
docker run nginx:alpine
А затем добавляйте отдельные параметры обратно в вашу команду, пока не найдете тот, который его нарушает. Обратите особое внимание на порядок ваших аргументов, параметры для run
должно быть между run
и ваше имя изображения. Аргументы после имени изображения передаются как команда для запуска. Арги перед run
варианты для docker
команда верхнего уровня.
Ваш $(pwd) содержит символы, которые вам не нравятся (например, пробелы). Попробуйте использовать кавычки:
docker run -d -p 9090:80 -v "$(pwd)":/usr/share/nginx/html nginx:alpine
Для меня это произошло потому, что я оставил имя пустым. Использовать
-t somename
задать имя при построении
Похоже, у вас где-то неверное имя. Вы пытались вывести PWD?
Попробуйте изменить pwd со статическим путем.
Взгляните на документацию, которая может вам помочь. https://docs.docker.com/v1.10/engine/reference/commandline/run/
Этот ответ относится к вычислительному движку Google Cloud (экземпляр виртуальной машины).
При указании контейнера образа для использования в настройках ВМ, включая
:latest
Тег явно в конце ввода контейнера вызывал ошибку недопустимого формата ссылки.
Поэтому мне пришлось поставить это:
gcr.io/project/container
Не этот:
gcr.io/project/container:latest
Если вы запускаете команду docker из сценария оболочки, включение подробного режима поможет найти проблему.
установить -х
установить -v
Я также столкнулся с этой проблемой и во время отладки обнаружил, что тег изображения заканчивается символом CR, и из-за этого я получаю «недопустимый формат ссылки».
Вы можете запустить следующую команду:
docker run -d -p 9090:80 -v $(pwd):/usr/share/nginx/html nginx:alpine
вместо$(pwd)
использовать${pwd}
если ваша операционная система — Windows.