后端需要掌握的技术_IT工程师都需要掌握的容器技术之DockerApi接口实战

5b7a2c1e43d275548e3f422dcfb4ebb6.gif

阅读本文约需要10分钟,您可以先关注我们,避免下次无法找到。

今天我们继续来学习Docker技术,本篇文章主要介绍Docker API接口,通过这些接口可以实现Docker批量的远程管控,同时还可以基于这些接口自研Docker业务编排平台。

下面就由成哥来介绍Docker API接口的具体使用吧!

01 开启Docker API远程访问

Docker Remote API 是由 Docker 守护进程提供的。在默认情况下,Docker守护进程会绑定到一个所在宿主机的套接字,即unix:///var/run/docker.sock。但此默认情况下,只能查询在同一宿主机上运行Docker的Remote API,如果我们想远程访问Remote API,就需要将Docker守护进程绑定到一个网络接口上。可以通过编辑守护进程的启动配置文件来开启Docker的远程访问,具体操作如下:

f7be1c03db320b7db7b17eb7662c630c.png
6313ccbdaa563f1a875ba9c358101414.png

现在我们通过浏览器验证一下接口是否可以正常访问,操作如下:

bcddac9dba8da624abc728f2a71f42c6.png

02 常用的Docker API接口

(1)获取容器列表

通过该接口可以获取所有容器,接口URL如下:

1. # 接口URL,请求方式:GET  2. /containers/json  

接口返回格式如下

34b5d58fd8f081ccf18b60107a31630f.png

该接口包含4个类型的查询参数

1)all,布尔型默认值为false,接口调用时默认只拉状态为running的容器,如果置位true可以拉取全部容器,包含已经停止了的容器

2)limit,整形拉取最近创建的几个容器。列如设为3则表示拉取最近创建的3个容器

3)size,布尔型默认值为false,如果置位true则拉取的容器可以包含容器大小如下所示

167243dd40cc07bf36eb0f3d4e1d0058.png

4)filters后面跟字典,可以针对多个条件进行筛选,如容器ID、容器状态等,下面示例通过容器ID进行容器数据筛选

8de0bd3a1827aace07891d52acd448dd.png

(2)创建容器

创建容器接口URL如下所示

1. # 接口URL,请求方式:POST  2. /containers/create  

我们现在创建一个容器test_api,具体操作如下

085604e979b817121498b019ea9f044c.png

我们看看机器上我们的容器是否创建成功

d989934740ef0c2b1171ed06a851f3e2.png

(3)删除容器

删除容器的接口URL具体如下所示

1. # 接口url,方法为:delete  2. /containers/{id}  

我们来删除容器elegant_saha,具体操作如下

381c45f857d59b38043f327d78be79a3.png
d112ad9af9222be8ce64da2812995ee6.png
dca5efaa2445590b6032f58e054040bc.png

容器删除接口常用的参数如下:

1)v,布尔值默认为false,用于指定删除容器时同时删除其关联的存储卷

2)force,布尔值默认为false,如果设为true将强制删除指定的容器,不然运行中的容器删除时会报错

(4)获取镜像列表

该接口用于获取容器镜像列表,具体接口内容如下

1. # 接口url,方法为:get  2. /images/json  

通过该接口拉取镜像列表具体操作如下

4a89a3bcaa17d289b9e774b93ecc2272.png

(5)从Docker Hub拉取镜像

拉取镜像的具体接口如下

1. # 接口url,方法为:post  2. /images/create  
eb820c8109b2e1f7cb3f037000ecda16.png

(6)删除镜像

删除镜像的接口具体如下所示

1. # 接口url,方法为:delete  2. /images/{name}  

我们删除镜像test_nginx,具体操作如下所示

5eaa31c1d98a1a1f97b13cad3f9d4cde.png
5c9e2145e58e33f3d5bde36f86c25f85.png
1864635f11938176404bb23715f8b580.png

(7)获取容器网络列表

获取容器网络列表接口具体如下所示

1. # 接口url,方法为:get  2. /networks  

我们拉取主机上所有创建的网络,具体操作如下

36929794a5ef4840ce0efbbfeb2ba6c7.png

(8)创建容器网络

容器网络创建的接口具体如下所示

1. # 接口url,方法为:post  2. /networks/create  

我们创建一个名为api_bridge类型为bridge的网络,具体操作如下:

0111c2e2af22ff2d66c6182a973af84a.png
eac795b6a61c30dbf80b6c88ae0758fb.png

(9)容器与网络绑定

容器与网络绑定的具体接口如下

1. # 接口url,方法为:post  2. /networks/{id/name}/connect  

我们将刚才创建的容器网络与容器test1进行绑定具体操作如下

620ca756f6fc738ef3dc0088b01cc890.png
ebc79ff3479550f91b8df8b723fa2ded.png

(10)删除容器网络

删除容器网络的接口具体如下

1. # 接口url,方法为:delete  2. /networks/{id/name}  

我们删除名称为docker_gwbridge的容器网络具体操作如下

80a11fc663baf22ca9a8588cb78520ac.png
dce6f18b850c28a134c5e262645451eb.png
cfc8ec232faadc0c91bb0c4078fb4c6d.png

(11)其它常用命令汇总

1. # 容器操作相关接口  2. docker container inspect:GET /containers/(id)/json  3. docker container top:GET /containers/(id)/top  4. docker container logs:GET /containers/(id)/logs  5. docker container export:GET /containers/(id)/export  6. docker container start:POST /containers/(id)/start  7. docker container attach:POST /containers/(id)/attach  8.   9. # 镜像操作相关接口  10. docker image inspect:GET /images/(name)/json  11. docker image tag:POST /images/(name)/tag  12. docker image push: POST /images/(name)/push  13. docker image build:POST /build  14. docker search:GET /images/search  

至此我们DockerApi接口的内容就全部讲完了,大家有什么问题可以在下方留言讨论,最后如果喜欢不要忘了点赞、关注与转发哦!

--END--

@IT管理局专注计算机领域技术、大学生活、学习方法、求职招聘、职业规划、职场感悟等类型的原创内容。期待与你相遇,和你一同成长。

相关文章推荐:

  • IT工程师都需要掌握的容器技术之Docker容器管理
  • IT工程师都需要掌握的容器技术之扫盲篇
d49fb2136ecb0904df16be023236e73b.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值