docker工人纯粹从命令行构build

有没有办法从命令行完全build立docker集装箱? 即,我需要能够设置像FROMRUNCMD东西。

我是一个场景,我不得不使用docker容器来运行所有东西( gitnpm等),而且我希望在准备工作完成的时候创build容器(比如npm install已经运行的容器) 。

有很多不同的情况下,为每个创build一个实际的Dockerfile是矫枉过正的。 我希望能够在我的脚本中创build命令行命令。

docker build要求Dockerfile是一个实际的文件。 您可以使用不同的文件名:

 docker build -f Dockerfile.temp . 

它们允许构build上下文(也就是.或当前目录)通过标准input传递,但试图通过这个语法传递一个Dockerfile将失败:

 $ docker build -t test-no-df -f - . <<EOF FROM busybox:latest CMD echo just a test EOF unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/bmitch/data/docker/test/-: no such file or directory 

2017-05-05更新:Docker刚刚发布了17.05.0-ce,包含这个PR#31236 。 现在上面的命令创build一个图像:

 $ docker build -t test-no-df -f - . <<EOF FROM busybox:latest CMD echo just a test EOF Sending build context to Docker daemon 23.34MB Step 1/2 : FROM busybox:latest ---> 00f017a8c2a6 Step 2/2 : CMD echo just a test ---> Running in 45fde3938660 ---> d6371335f982 Removing intermediate container 45fde3938660 Successfully built d6371335f982 Successfully tagged test-no-df:latest