Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote API

本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自原教程最后一篇 Part 9: 10 Docker Remote API Commands for Images。
该系列所有文章将参考其他学习资料翻译,也会加入自己的学习作为部分注解。如有错误,欢迎指正。

本文介绍十个专门用于操作镜像的 Docker Remote API。

创建一个镜像

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

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

用法:

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

Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote API_第1张图片

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

从容器创建镜像

POST /commit

Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote API_第2张图片

列出镜像

GET /images/json

Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote API_第3张图片

插入文件

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

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

Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote API_第4张图片

删除镜像

DELETE /images/(name)

Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote API_第5张图片

推送镜像到 registry

POST /images/(name)/push

Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote API_第6张图片

为镜像做标签

POST /images/(name)/tag

Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote API_第7张图片

搜索镜像

GET /images/search

Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote API_第8张图片

查看镜像历史

GET /images/(name)/history

Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote API_第9张图片

构建镜像

POST /build

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

使用 POST 传入文件的用法:

Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote API_第10张图片

再例如使用 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

结尾

Flux7 系列的 Docker 教程到此结束。

本系列教程的有些文章并不是很厚实,也不很使用,所以译者也正在翻译其他的 Docker 文章,包括 Docker 安全、Docker 进阶、Docker 实例等系列实用性的文章,欢迎关注 SegmentFault 社区获取最新信息。

当然,如果你有相关的、非常棒的英文教程可以用留言的方式推荐给我。

你可能感兴趣的:(运维,docker)