开启Remote API

docker默认是没有开启Remote API的,需要我们手动开启。编辑/lib/systemd/system/docker.service文件,

在文件里的ExecStart参数后面添加-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

然后重启sudo systemctl daemon-reload     sudo service docker restart  在浏览器查看:

备注:我这里用了 JSONView-for-Chrome插件  ,用git下载下来,chrome设置 - 扩展程序 (地址栏输入chrome://extensions/)-> 选中 开发模式-> 点击"加载已解压的扩展程序" -> 选择插件目录(xxx\JSONView-for-Chrome-master\WebContent)

Python API

需要安装pip3 install docker-py,理论上docker-py可以干所有事情,但实际现在还不不怎么好用

import docker

client = docker.DockerClient("http://192.168.100.5:2375")
#打印现有的images名称
#images =client.images.list()
#for img in images:
#print(img.attrs["RepoTags"][])
#获取container
for container in client.containers.list():
#print(dir(container))
print("container:"+container.name+" image:"+container.image.attrs["RepoTags"][])
#拉取镜像 相当于sudo docker pull alpine
image = client.images.pull("alpine")
#运行镜像 如果detach=True,会立即返回一个container对象
container = client.containers.run("alpine", ["touch", "/helloworld"], detach=True)
container.wait()
#提交新镜像
image = container.commit("helloworld")
import docker

client = docker.DockerClient("http://192.168.100.5:2375")
#打印现有的images名称
#images =client.images.list()
#for img in images:
#print(img.attrs["RepoTags"][])
#获取container
for container in client.containers.list():
#print(dir(container))
print("container:"+container.name+" image:"+container.image.attrs["RepoTags"][])
#拉取镜像 相当于sudo docker pull alpine
image = client.images.pull("alpine")
#运行镜像 如果detach=True,会立即返回一个container对象
container = client.containers.run("alpine", ["touch", "/helloworld"], detach=True)
container.wait()
#提交新镜像
image = container.commit("helloworld")

参考:

https://docs.docker.com/develop/sdk/examples/

https://github.com/docker/docker-py

https://letong.gitbooks.io/docker/content/API/python_api.html

最新文章

  1. meta_value与meta_value_num的区别(排序)
  2. CSS魔法堂:重拾Border之——不仅仅是圆角
  3. ObjectStream 及 序列化 介绍
  4. C#软件设计——小话设计模式原则之:接口隔离原则ISP
  5. Codeforces Round B. Buttons
  6. jtree添加节点
  7. 使用AFNetWorking 实现以Basic Authentication方式获取access-token
  8. 【IHttpHandler】HttpModule的认识
  9. 【重走Android之路】【路线篇(一)】路线图
  10. Java并发实现一(并发的实现之Thread和Runnable的区别)
  11. BCB6.0是垃圾的二十条理由
  12. css @media认识
  13. css3动画--位移加阴影
  14. SSH服务器拒绝了密码,请再试一次
  15. Vue使用watch监听一个对象中的属性
  16. c++入门之出话指针和地址。
  17. Beta阶段冲刺2.0
  18. Luogu 1613 跑路(最短路径,倍增)
  19. 【struts2】预定义拦截器
  20. 【Ubuntu】任务管理器loadruner

热门文章

  1. kingbase常用语句
  2. Linux从入门到精通总结(非原创)
  3. 深入理解Java封装、继承、多态
  4. Linux系统运行模式介绍
  5. dapi 基于Django的轻量级测试平台七 怎样部署到生产环境
  6. 神经网络中Batch Size的理解
  7. Python中的next()\iter()函数详解
  8. netlify搭建静态站+https
  9. Eclipse对spring-boot,spring-boot-mybatis的搭建
  10. UDF——输出网格节点坐标