#docker #dockerfile
#docker #dockerfile
Вопрос:
Я признаю, что я новичок в мире контейнеров. Но мне удалось запустить docker на моем W10 с помощью WSL2. Я также могу использовать docker-UI и запускать контейнеры / приложения или изображения. Поэтому я считаю, что инфраструктура на месте и обновляется. Тем не менее, когда я пытаюсь использовать даже самый простой Dockerfile, он, похоже, не работает, и я не понимаю сообщения об ошибках, которые он выдает: это Dockerfile:
FROM ubuntu:20.04
(да, скромное начало — или чрезвычайно урезанный репро)
docker build Dockerfile
[ ] Building 0.0s (2/2) FINISHED
=> ERROR [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 33B 0.0s
=> ERROR [internal] load .dockerignore 0.0s
=> => transferring context: 33B 0.0s
------
> [internal] load build definition from Dockerfile:
------
------
> [internal] load .dockerignore:
------
failed to solve with frontend dockerfile.v0: failed to build LLB: error from sender: Dockerfile is not a directory
Ответ №1:
Вам нужно выполнить docker build -f [docker_file_name] .
(не пропустите точку в конце).
Если имя вашего файла равно Dockerfile
, то вам не нужно -f
и имя файла.
Ответ №2:
Я столкнулся с аналогичной проблемой, я использую docker desktop для Windows. Перезагрузил ноутбук, и проблема была решена. Надеюсь, это может кому-то помочь.
Комментарии:
1. tbh: Перезагрузка — это всегда хорошая идея, но она не может исправить ошибочную точку. Однако в «чистой» оболочке вы не можете снова вводить строку без точки 😉
Ответ №3:
Для меня у меня была символическая ссылка Linux в том же каталоге, что и Dockerfile. При запуске docker build
из Windows 10 это дало мне ERROR [internal] load build definition from Dockerfile
. Я подозреваю, что Docker docker build .
сканирует каталог и, если он не может прочитать один файл, он выходит из строя. Для меня я смонтировал каталог с помощью WSL и удалил символическую ссылку.
Ответ №4:
У меня была та же проблема, но другое решение (в Windows):
- Я открыл консоль в своей папке; моя папка содержит только
Dockerfile
Dockerfile
содержимое былоFROM ubuntu:20.04
(таким же, как OP)- Запускался
docker build
, зная, что у меня естьDockerfile
в моей текущей папке - Я получал то же сообщение об ошибке OP
- Я остановил службу Docker Desktop
- Запустил
docker build
снова — получил"docker build" requires exactly 1 argument.
- Ran
docker build Dockerfile
— получилunable to prepare context: context must be a directory: C:zdockeraem_ubuntu20Dockerfile
- Ran
docker build .
— получилerror during connect: This error may indicate that the docker daemon is not running.
- Повторно запустил службу Docker Desktop
- Запуск
docker build .
— успех! - Вывод:
docker build PATH
, гдеPATH
должно быть имя папки, и эта папка должна содержатьDockerfile
Ответ №5:
В моем случае я получил эту ошибку при запуске docker
команд в неправильном каталоге. Просто cd
в каталог, где находится ваш Dockerfile, и все снова хорошо.