8 Docker Remote API

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

8 Docker Remote API_第1张图片

创建新容器

POST /containers/create

8 Docker Remote API_第2张图片

检查容器

GET /containers/(id)/json

用于获取容器底层信息。

8 Docker Remote API_第3张图片

进程列表

GET /containers/(id)/top

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

8 Docker Remote API_第4张图片

容器日志

GET /containers/(id)/logs

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

8 Docker Remote API_第5张图片

导出容器

GET /containers/(id)/export

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

8 Docker Remote API_第6张图片

启动容器

POST /containers/(id)/start

8 Docker Remote API_第7张图片

停止容器

POST /containers/(id)/stop

8 Docker Remote API_第8张图片

重启容器

Restart a Container 

8 Docker Remote API_第9张图片

KILL容器

POST /containers/(id)/kill

8 Docker Remote API_第10张图片


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

创建一个镜像

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

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

用法:

POST /images/create
POST /images/create?fromImage=base 获取名叫 base 的镜像。
POST /images/create?fromSrc=url 从 url 导入镜像。

8 Docker Remote API_第11张图片

Flux7 这里就有一个 BUG。
shell操作中带有 & 的情况下,是需要非常小心的。
图片中的命令需要改正为:curl -v -X POST "http://localhost:5555/images/create?fromImage=base&tag=latest"

从容器创建镜像

POST /commit

8 Docker Remote API_第12张图片

列出镜像

GET /images/json

8 Docker Remote API_第13张图片

插入文件

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

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

8 Docker Remote API_第14张图片

删除镜像

DELETE /images/(name)

8 Docker Remote API_第15张图片

推送镜像到 registry

POST /images/(name)/push

8 Docker Remote API_第16张图片

为镜像做标签

POST /images/(name)/tag

8 Docker Remote API_第17张图片

搜索镜像

GET /images/search

8 Docker Remote API_第18张图片

查看镜像历史

GET /images/(name)/history

8 Docker Remote API_第19张图片

构建镜像

POST /build

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

使用 POST 传入文件的用法:

8 Docker Remote API_第20张图片

再例如使用 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%3A%2F%2Flocalhost%2FDockerfile"
命令 # docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
asd                      latest              1946f0511bda        36 seconds ago      188.3 MB





你可能感兴趣的:(docker)