8 Docker Remote API

来源:互联网 发布:fifa online3 mac 编辑:程序博客网 时间:2024/06/05 07:30

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 访问。


1 操作容器的api:


列出所有容器

GET /containers/json

创建新容器

POST /containers/create

检查容器

GET /containers/(id)/json

用于获取容器底层信息。

进程列表

GET /containers/(id)/top

获取容器内运行进程的列表。

容器日志

GET /containers/(id)/logs

获取容器内 stdout 和 stderr 的输出。

导出容器

GET /containers/(id)/export

相当于 docker export,可以直接 curl 到一个镜像文件。

启动容器

POST /containers/(id)/start

停止容器

POST /containers/(id)/stop

重启容器

Restart a Container 

KILL容器

POST /containers/(id)/kill


2 用于操作镜像的 Docker Remote API:

创建一个镜像

镜像可以从两个方式获取:

  1. 从 registry 中 pull 一个。
  2. 导入一个。

用法:

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"

从容器创建镜像

POST /commit

列出镜像

GET /images/json

插入文件

POST /images/(name)/insertPOST /images/test/insert?path=/usr&url=myurl

如图,将 url 提供的文件插入到 name 对应的镜像的 path 目录中。

删除镜像

DELETE /images/(name)

推送镜像到 registry

POST /images/(name)/push

为镜像做标签

POST /images/(name)/tag

搜索镜像

GET /images/search

查看镜像历史

GET /images/(name)/history

构建镜像

POST /build

这个需要解释一下:POST 传入的 Dockerfile 文件必须是 tar.gz 格式。或者不传入 Dockerfile,而是用 remote 参数指定一个,这种情况下不要求格式。

使用 POST 传入文件的用法:

再例如使用 remote 传入 Dockerfile 的 url 用法:

命令 # curl localhost/Dockerfile   #用于展示存储Dockerfile的URIFROM ubuntuRUN mkdir /myvolRUN echo "hello world" > /myvol/greatingVOLUME /myvol命令 # curl -X POST "127.0.0.1:4243/build?t=asd&remote=http%3A%2F%2Flocalhost%2FDockerfile"命令 # docker imagesREPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZEasd                      latest              1946f0511bda        36 seconds ago      188.3 MB





0 0