我正在构建一个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的后续行中。
答案 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>]