Docker Remote API 是将会用来取代 Docker 命令的工具。本文将会用 curl 操作 Docker Remote API。
示例系统是 Ubuntu,配置文件在 /etc/default/docker。 需要把此文件的 DOCKER_OPTS 改为 DOCKER_OPTS="-H 127.0.0.1:5555 -H unix:///var/run/docker.sock"。 修改完毕后,重启 Docker。
Docker 常用端口为 4243,本文遵照原文,改为 5555,生产环境一定要注意该端口不要被未授权 IP 访问。
用于获取容器底层信息。
获取容器内运行进程的列表。
获取容器内 stdout 和 stderr 的输出。
相当于 docker export,可以直接 curl 到一个镜像文件。
2 用于操作镜像的 Docker Remote API:
镜像可以从两个方式获取:
从 registry 中 pull 一个。导入一个。用法:
POST /images/create POST /images/create?fromImage=base 获取名叫 base 的镜像。 POST /images/create?fromSrc=url 从 url 导入镜像。
Flux7 这里就有一个 BUG。 shell操作中带有 & 的情况下,是需要非常小心的。 图片中的命令需要改正为:curl -v -X POST "http://localhost:5555/images/create?fromImage=base&tag=latest"
如图,将 url 提供的文件插入到 name 对应的镜像的 path 目录中。
这个需要解释一下:POST 传入的 Dockerfile 文件必须是 tar.gz 格式。或者不传入 Dockerfile,而是用 remote 参数指定一个,这种情况下不要求格式。
使用 POST 传入文件的用法:
再例如使用 remote 传入 Dockerfile 的 url 用法:
命令 # curl localhost/Dockerfile #用于展示存储Dockerfile的URI FROM ubuntu RUN mkdir /myvol RUN echo "hello world" > /myvol/greating VOLUME /myvol 命令 # curl -X POST "127.0.0.1:4243/build?t=asd&remote=http://localhost/Dockerfile" 命令 # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE asd latest 1946f0511bda 36 seconds ago 188.3 MB
