最后,能够 通过Docker API构建映像 。
样本Dockerfile:
# cat DockerfileFROM ubuntu:14.04RUN mkdir demoRUN apt-get updateRUN apt-get -y install vim
创建一个包含您的Dockerfile的tar文件。
# tar -cvf Dockerfile.tar.gz Dockerfile
执行以下API,有关更多选项,请参考此。
# curl -v -X POST -H "Content-Type:application/tar" --data-binary '@Dockerfile.tar.gz' http://127.0.0.1:5000/build?t=build_test* Hostname was NOT found in DNS cache* Trying 127.0.0.1...* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)> POST /build?t=build_test HTTP/1.1> User-Agent: curl/7.35.0> Host: 127.0.0.1:5000> Accept: */*> Content-Type:application/tar> Content-Length: 10240> Expect: 100-continue> < HTTP/1.1 100 Continue< HTTP/1.1 200 OK< Api-Version: 1.28< Content-Type: application/json< Docker-Experimental: false< Ostype: linux* Server Docker/17.04.0-ce (linux) is not blacklisted< Server: Docker/17.04.0-ce (linux)< Date: Mon, 01 May 2017 09:56:54 GMT< Transfer-Encoding: chunked< {"stream":"Step 1/4 : FROM ubuntu:14.04n"}{"stream":" ---u003e 302fa07d8117n"}{"stream":"Step 2/4 : RUN mkdir demon"}{"stream":" ---u003e Running in 5941f911099en"}{"stream":" ---u003e bccbffdd776an"}{"stream":"Removing intermediate container 5941f911099en"}{"stream":"Step 3/4 : RUN apt-get updaten"}{"stream":" ---u003e Running in 7aefd190a165n"}{"stream":"Ign http://archive.ubuntu.com trusty InReleasen"}{"stream":"Get:1 http://archive.ubuntu.com trusty-updates InRelease [65.9 kB]n"}{"stream":"Get:2 http://archive.ubuntu.com trusty-security InRelease [65.9 kB]n"}{"stream":"Get:3 http://archive.ubuntu.com trusty Release.gpg [933 B]n"}{"stream":"Get:4 http://archive.ubuntu.com trusty Release [58.5 kB]n"}{"stream":"Get:5 http://archive.ubuntu.com trusty-updates/main Sources [491 kB]n"}{"stream":"Get:6 http://archive.ubuntu.com trusty-updates/restricted Sources [6467 B]n"}{"stream":"Get:7 http://archive.ubuntu.com trusty-updates/universe Sources [226 kB]n"}.......{"stream":"Fetched 22.5 MB in 1min 40s (224 kB/s)nReading package lists..."}{"stream":"n"}{"stream":" ---u003e ff06741dea7en"}{"stream":"Removing intermediate container 7aefd190a165n"}{"stream":"Step 4/4 : RUN apt-get -y install vimn"}{"stream":" ---u003e Running in e9ddad5a4695n"}{"stream":"Reading package lists..."}{"stream":"n"}{"stream":"Building dependency tree..."}{"stream":"nReading state information...n"}{"stream":"The following extra packages will be installed:n libgpm2 libpython2.7 libpython2.7-minimal libpython2.7-stdlib vim-runtimen"}{"stream":"Suggested packages:n gpm ctags vim-doc vim-scriptsn"}{"stream":"The following NEW packages will be installed:n libgpm2 libpython2.7 libpython2.7-minimal libpython2.7-stdlib vimn vim-runtimen"}{"stream":"0 upgraded, 6 newly installed, 0 to remove and 3 not upgraded.nNeed to get 9074 kB of archives.nAfter this operation, 42.9 MB of additional disk space will be used.nGet:1 http://archive.ubuntu.com/ubuntu/ trusty/main libgpm2 amd64 1.20.4-6.1 [16.5 kB]n"} .......{"stream":"Processing triggers for libc-bin (2.19-0ubuntu6.11) ...n"}{"stream":" ---u003e b1736dd9b698n"}{"stream":"Removing intermediate container e9ddad5a4695n"}{"stream":"Successfully built b1736dd9b698n"}* Connection #0 to host 127.0.0.1 left intact成功构建镜像后,检查docker镜像。
# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEbuild_test latest b1736dd9b698 8 seconds ago 254MB
删除了一些不必要的输出。



