Команда 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.

Другие вопросы по тегам