Dockerfile' FROM'命令不执行一行

时间:2018-01-08 15:26:19

标签: bash docker dockerfile

我正在构建一个Dockerfile但是当我执行docker build时,它会返回一个错误:

Error response from daemon: Dockerfile parse error line 7: FROM requires either one or three arguments

我的第7行命令是:

FROM nvidia-docker run -it gcr.io/tensorflow/tensorflow:latest-devel-gpu

我有点困惑为什么这个命令不起作用,因为我在bash中使用这个命令来构建我需要的docker(显然没有FROM命令)。

注意:我想构建一个这个nvidia-docker run -it gcr.io/tensorflow/tensorflow:latest-devel-gpu的图像,并在该图像的顶部有一些其他东西,我已经包含在Dockerfile的后续行中。

2 个答案:

答案 0 :(得分:2)

我认为你对nvidia-docker的使用感到困惑:

  

nvidia-docker本质上是docker命令的包装器   透明地为容器配备必要的组件   在GPU上执行代码。只有在使用时才是绝对必要的   nvidia-docker运行以执行使用GPU的容器。

所以你要做的就是在Dockerfile中运行一个命令。

我认为你想要做的是:

FROM gcr.io/tensorflow/tensorflow:latest-devel-gpu
...

如您所见,Dockerfile不包含对nvidia包装器的引用,因为它将用于运行容器,而不是用于构建映像。

然后使用nvidia包装器构建并运行映像:

docker build -t tensorflow .
nvidia-docker run -it tensorflow

答案 1 :(得分:1)

FROM关键字的使用方式如下:

FROM ImageName

nvidia-docker run -it gcr.io/tensorflow/tensorflow:latest-devel-gpu不是图片名称。你应该找到一个你想要开始的图像(名称),并将其放在那里。你有什么命令。

请参阅文档:https://docs.docker.com/engine/reference/builder/#from

FROM <image> [AS <name>]
Or

FROM <image>[:<tag>] [AS <name>]
Or

FROM <image>[@<digest>] [AS <name>]