zoukankan      html  css  js  c++  java
  • python docker api

    开启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/)-> 选中 开发模式-> 点击"加载已解压的扩展程序" -> 选择插件目录(xxxJSONView-for-Chrome-masterWebContent)

    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"][0])
    #获取container
    for container in client.containers.list():
        #print(dir(container))
        print("container:"+container.name+" image:"+container.image.attrs["RepoTags"][0])
    #拉取镜像 相当于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"][0])
    #获取container
    for container in client.containers.list():
        #print(dir(container))
        print("container:"+container.name+" image:"+container.image.attrs["RepoTags"][0])
    #拉取镜像 相当于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

  • 相关阅读:
    INTZ DX format
    多线程渲染
    BindVertexbuffer
    Lock flag DX
    Triple buffering and vsync
    可迭代对象和迭代器
    装饰器
    闭包函数
    名称空间和作用域
    函数对象
  • 原文地址:https://www.cnblogs.com/majiang/p/11372355.html
Copyright © 2011-2022 走看看