泊坞窗:“ build”需要1个参数。参见'docker build --help'


315

尝试遵循有关从Docker网站构建Docker映像的说明。

https://docs.docker.com/examples/running_redis_service/

这是我将遵循文档上的说明并使用此Dockerfile的错误

FROM        ubuntu:14.04
RUN         apt-get update && apt-get install -y redis-server
EXPOSE      6379
ENTRYPOINT  ["/usr/bin/redis-server"]


sudo docker build -t myrepo/redis
docker: "build" requires 1 argument. See 'docker build --help'.

怎么解决?

Answers:


657

您需要添加一个点,例如,docker build -t mytag .这意味着您在本地目录中使用Dockerfile,如果您使用docker 1.5,则可以在其他位置指定Dockerfile,请从docker build的帮助中提取-f, --file="" Name of the Dockerfile(Default is 'Dockerfile' at context root)


3
您能否标记出确切的命令:“ docker build -t mytag”。没有看到圆点
nekperu15739,2015年

6
@ user2915097我不同意。(点)表示本地目录,因为使用-f(--file)选项时,请将。(点)仍然是必填项。
andolsi zied '17

5
的。指定了构建的上下文
andolsi引用17'Feb

34
问题的受欢迎程度表明docker命令的语法是多么不清楚...我个人认为点表示句子的结尾...
令人失望的

2
您好来自docs.docker.com/get-started/part2/#apppy-我太盲目看不到了。那里!
亚历克斯·詹森

31

您是否从其他地方(网页或其他文件)复制了构建命令?尝试从头开始输入。

我从AWS教程复制了构建命令,并将其粘贴到终端中,并出现此错误。这让我发疯。手动输入后,就可以了!仔细观察并查看以前的失败命令,我发现“破折号”字符是不同的,它比我自己使用“减号/破折号”键键入时得到的字符更细,更长。

坏:

sudo docker build –t foo。

好:

sudo docker build -t foo。

您能看到区别吗?。粘贴很难。


22

使用以下命令

docker build -t mytag .

请注意,mytag和dot之间有一个空格。该点表示当前的工作目录。


17

在此处输入图片说明只需在命令末尾提供点(。),包括一个空格。

例:

命令:docker build -t“ blink:v1”。

在这里,您可以看到“ blink:v1”,然后是空格,然后是点号(。)。

而已。


16

在我的情况下,当我将多个Gitlab env变量传递给docker buildwith --build-arg标志时,此错误发生在Gitlab CI管道中。

原来,其中一个变量中有一个空格导致了错误。由于管道日志仅显示,因此很难找到$VARIABLE_NAME

确保引用环境变量,以便正确处理空格。

更改自:

--build-arg VARIABLE_NAME=$VARIABLE_NAME

至:

--build-arg VARIABLE_NAME="$VARIABLE_NAME"

1
保存我的谷歌搜索;)
Adiii

这正是我遇到的问题。非常感谢你!
phi

10


您最后需要一个DOT ...


因此,例如:

$ docker build -t <your username>/node-web-app .

它有点隐藏,但是如果您注意.最后的话...


1
你救了我的日子。谢谢。
PhatHV

3

您可以从名为docker file的文件(默认情况下名为Dockerfile)构建Docker映像。它在Docker容器中具有您需要的一组命令/指令。下面的命令创建带有最新标签的图像,Dockerfile应该出现在该位置(。表示存在目录)

docker build . -t <image_name>:latest

如果文件名不是默认值(Dockerfile)Sameple Docker文件内容,则可以通过-f指定Dockerfile。

FROM busybox
RUN echo "hello world"

2

在较旧版本的Docker上,您似乎需要使用以下顺序:

docker build -t tag .

并不是

docker build . -t tag


1

打开PowerShell,然后按照以下说明进行操作。此类错误通常在Windows SO中 出现,当您使用命令生成时,需要一个选项和路径。

存在这种类型的错误,因为您尚未指定Dockerfile的路径。

尝试这个:

C:\Users\Daniele\app> docker build -t friendlyhello C:\Users\Daniele\app\
  1. friendlyhello是您分配给容器的名称
  2. C:\ Users \ Daniele \ app \是约束您的Dockerfile的路径

如果您想添加标签

C:\Users\Daniele\app> docker build -t friendlyhello:3.0 C:\Users\Daniele\app\

1

如果有人在尝试标记-t图像并从未命名的文件Dockerfile(即不简单地使用.路径)构建图像时遇到此问题,则可以这样操作:

docker build -t my_image -f my_dockerfile .

请注意,docker希望将目录作为参数,并将文件名作为选项。


0

我的问题是需要将Dockerfile.txt转换为Unix可执行文件。一旦我做了那个错误就消失了。

在执行此操作之前,您可能需要删除.txt部分,但在Mac上,请转到终端并cd进入Dockerfile所在的目录和类型

chmod +x "Dockerfile"

然后它将文件转换为Unix可执行文件,然后可以通过Docker build命令执行该文件。


0

以下命令对我有用。Docker文件放置在my-app-master文件夹中。

docker build -f my-app-master / Dockerfile -t my-app-master。


-4

Docker构建命令格式

在您的Powershell中:存在这种类型的错误,因为您尚未指定Dockerfile的路径。

尝试这个:

$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt

friendlyhello是您分配给容器并添加版本的名称,只需使用:latest

-f C:\ TestDockerApp \ Dockerfile.txt- 您要添加标签,因为构建命令需要参数或标签-DockerFile是文本文档,因此显式添加扩展名.txt

**尝试以下格式:

$ docker build -t friendlyhello:latest -f C:\\TestDockerApp\\Dockerfile.txt .**

1
您提供的命令应该失败,并显示相同的错误。您必须包含一个构建上下文作为参数,通常是a,.以指示当前目录应作为构建上下文发送到Docker引擎。
BMitch
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.