正在按照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'.

如何解决?


当前回答

#Using a file other than Dockerfile instead.
#Supose my file is `Dockerfile-dev`

docker build -t mytag - < Dockerfile-dev

其他回答

打开PowerShelland并遵循以下说明。 这种类型的错误通常出现在Windows S.O.中 当您使用命令构建时,需要一个选项和路径。

出现这种类型的错误是因为您没有在Dockerfile中指定路径。

试试这个:

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

Friendlyhello是分配给容器的名称 c:\ users \ daniel \app\是包含Dockerfile的路径

如果你想添加一个标签

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

在我的例子中,这个错误发生在Gitlab CI管道中,当我传递多个Gitlab env变量到docker build时,使用——build-arg标志。

结果发现其中一个变量中有空格,这导致了错误。很难找到它,因为管道日志只显示$VARIABLE_NAME。

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

改变:

--build-arg VARIABLE_NAME=$VARIABLE_NAME

to:

--build-arg VARIABLE_NAME="$VARIABLE_NAME"

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 .**

在我的例子中,我使用了一个破折号(稍微长一点的连字符)符号——在t选项出现问题之前。

docker build –t simple-node .

替换为连字符/减号。

docker build -t simple-node .

您需要添加一个点,这意味着使用本地目录中的Dockerfile。

例如:

Docker build -t mytag。

这意味着你在本地目录中使用Dockerfile,如果你使用docker 1.5,你可以在其他地方指定Dockerfile。从docker build的帮助输出中提取:

-f,——file="" Dockerfile的名称(默认为'Dockerfile')