Ответ 1
Вы должны указать на каталог вместо этого. Вы не должны указывать dockerfile.
docker build -t ubuntu-test:latest.
работает
docker build -t ubuntu-test:latest./Dockerfile
не работает.
У меня есть Dockerfile
который должен создать образ Ubuntu
. Но когда я бегу
docker build -t ubuntu-test:latest ./Dockerfile
Он показывает следующую ошибку на консоли
невозможно подготовить контекст: context должен быть каталогом:/Пользователи /tempUser/git/docker/Dockerfile
Я нахожусь на Mac OsX. Я тоже пытался sudo
. Ничего не работает.
Вы должны указать на каталог вместо этого. Вы не должны указывать dockerfile.
docker build -t ubuntu-test:latest.
работает
docker build -t ubuntu-test:latest./Dockerfile
не работает.
Вы также можете запустить сборку докеров с опцией -f
docker build -t ubuntu-test:latest -f Dockerfile.custom .
Чтобы указать Dockerfile
при сборке, вы можете использовать:
docker build -t ubuntu-test:latest - < /path/to/your/Dockerfile
Но это не удастся, если есть команда ADD
или COPY
, которая зависит от относительного пути. Существует много способов указать context
для docker build
, вы можете обратиться к docs docker build для получения дополнительной информации.
docker build
Основной синтаксис команды сборки docker:
docker build -t imagename:imagetag context_dir
Контекст является каталогом и определяет то, что будет видеть процесс сборки Docker: С точки зрения Dockerfile любой файл context_dir/mydir/myfile
в вашей файловой системе станет /mydir/myfile
в Dockerfile и, следовательно, в процессе сборки.
Если dockerfile называется Dockerfile
и живет в контексте, он будет найден неявно согласно соглашению об именах.
Это хорошо, потому что это означает, что вы обычно можете сразу найти Dockerfile в любом контейнере Docker.
Если вы настаиваете на использовании другого имени, например, "/tmp/mydockerfile", вы можете использовать -f
следующим образом:
docker build -t imagename:imagetag -f /tmp/mydockerfile context_dir
но тогда файл Docker не будет находиться в той же папке или, по крайней мере, будет сложнее найти.
Это просто, всякий раз, когда выполняется сборка Docker, докер хочет знать, какое имя изображения, поэтому нам нужно передать -t:. Теперь убедитесь, что вы находитесь в том же каталоге, где у вас есть файл Dockerfile, и запустите
docker build -t <image_name>:<version> .
пример
docker build -t my_apache:latest .
Предполагая, что вы находитесь в том же каталоге, что и ваш Dockerfile, иначе передайте флаг -f и файл Docker.
docker build -t my_apache:latest -f ~/Users/documents/myapache/Dockerfile
Я сталкиваюсь с той же проблемой. Я использую docker version:17.09.0-ce
.
Я следую ниже шагов:
$ sudo docker build -t ubuntu-test:latest .
Устранена проблема, и изображение успешно создано.
Примечание: команда сборки зависит от версии докера, а также от того, какой вариант сборки мы используем. :)
Как новичок, у меня такая же ошибка на окнах, dockerfile находится под D:\Projects\Docker\Example1\проблема в том, что я забыл точку в конце команды, чтобы ссылаться на ту же самую папку, в которой я есть. Поэтому команда есть (на powershel
PS D:\Projects\Docker\Example1> docker build -t friendlyhello .
Он создает изображение friendlyhello.