#docker
#docker
Вопрос:
Я создал изображение под названием «helloworld» на основе какого-то проекта, который у меня есть.
Если я запускаю :
изображения Docker
Я вижу его там в верхней части списка.
Теперь, если я хочу его запустить, docker жалуется, что оно не существует.
Запуск этого :
docker run -p 8080:8080 helloworld
возвращает это :
docker: Ответ об ошибке от daemon: отказано в доступе к helloworld, репозиторий не существует или может потребовать «входа в систему docker»: отказано: запрошенный доступ к ресурсу отклонен. Смотрите ‘docker run —help’.
Почему docker жалуется, что мое изображение не существует?
Ответ №1:
Он жалуется, потому что это:
docker run -p 8080:8080 helloworld
это сокращенная версия этого:
docker run -p 8080:8080 docker.io/library/helloworld:latest
и, судя по скриншоту, ваше изображение вызывается
docker.io/library/helloworld:1.0
таким образом, правильная команда (пропуская префикс по умолчанию) является:
docker run -p 8080:8080 helloworld:1.0
Ответ №2:
Другие ответы правильные, но не объясняют четко, почему они правильные.
docker run
Команда ожидает имя изображения и, необязательно, тег (т. Е. docker run IMAGE[:TAG]
). Если тег не указан, по умолчанию используется latest
.
Запуск docker run helloworld
эквивалентен docker run helloworld:latest
, но этот образ не существует в операционной системе в соответствии с docker images
.
Решение состоит в том, чтобы указать тег изображения: helloworld:1.0
.
Ответ №3:
Ваша команда сборки изображения:
docker build --rm -f "Dockerfile" -t helloworld:1.0 "."
Это означает, что ваше имя изображения helloworld:1.0
Если бы вы запустили docker build --rm -f "Dockerfile" -t helloworld "."
Тогда ваше имя изображения — helloworld
или helloworld:latest
, и ваша первая попытка сработала бы.
Чтобы решить вашу проблему, запустите это вместо:
docker run -p 8080:8080 helloworld:1.0