亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

[開源夏令營][四] Docker remote API 之 鏡像篇

系統 1735 0

列出鏡像

列出鏡像,有兩個可選參數,一個是all,一個是filter,all可選值有,0/False/false,1/True/true,默覺得0;filter是一個包括一個過濾對象的json,形式如‘{"dangling":["true"]}'

      GET /images/json
    

我們能夠嘗試請求一下

      curl -s -XGET theegg.me/docker/images/json?all=0 | python -mjson.tool
    

能夠看到例如以下的返回值:

      [
    {
        "Created": 1405461399,
        "Id": "88b42ffd1f7cc87c46edf70924b3e24f18da0eb69337deff4db2979d6e1032d8",
        "ParentId": "c69cab00d6ef21152755a3de928625d7a02860ebe918b8fe9d1dd6aba15229b2",
        "RepoTags": [
            "fedora:latest"
        ],
        "Size": 373742581,
        "VirtualSize": 373742581
    },
    {
        "Created": 1403128361,
        "Id": "e54ca5efa2e962582a223ca9810f7f1b62ea9b5c3975d14a5da79d3bf6020f37",
        "ParentId": "6c37f792ddacad573016e6aea7fc9fb377127b4767ce6104c9f869314a12041e",
        "RepoTags": [
            "ubuntu:latest"
        ],
        "Size": 8,
        "VirtualSize": 276100357
    }
]
    

返回值相應的含義:

Created:創建的時間,這是一個UNIX時間,以1970為起點,單位為秒

Id:是一個SHA256值,是該鏡像的標識。

ParentId:是一個SHA256值,是該鏡像的父鏡像的標識。

RepoTags:是一個字符串數組,是標明在倉庫中它的標簽。一個鏡像可能會帶有多個標簽。

Size:是鏡像的實際的大小,即鏡像占硬盤空間的大小。

VirtualSize:是鏡像的虛擬大小,或者就是鏡像的大小。鏡像的實際大小為父鏡像的虛擬大小減去該鏡像的虛擬大小。


創建鏡像

      POST /images/create
    

請求參數:

      -   **fromImage** – 鏡像的名字
-   **fromSrc** – 鏡像的來源,即標準輸入
-   **repo** – 倉庫
-   **tag** – 標簽
-   **registry** – 從哪個registry
    

演示樣例請求:

      curl -s -XPOST theegg.me/docker/images/create?fromImage=base
    

返回:

開始:

      {
    "status": "Pulling repository base"
}
    

過程中:

      {
    "status": "Downloading", 
    "progressDetail": {
        "current": 528384, 
        "total": 94863360, 
        "start": 1405907686
    }, 
    "progress": "[>                                                  ] 528.4 kB/94.86 MB 6m30s", 
    "id": "27cf78414709"
}
    

出錯時:(來自官方文檔,但實際curl操作的時候是顯示504超時,原因還沒有查明)

      {"error":"Invalid..."}
    

返回值含義:

status:表示狀態,當前操作狀態

progressDetail:表示進度細節,里面包括三個值,current當前位置,total總共多少,start從何處開始

progress:表示進度,是一個能直接輸出的進度顯示條(ascii圖)

id:標示符

error:出錯信息


插入文件到鏡像中

POST /images/(name)/insert
將url指定的文件插入到名字為name的鏡像的路徑path中
演示樣例請求:


不清楚為什么無法請求


檢查鏡像

      GET /images/(name)/json
    


返回一些指定鏡像名的底層信息


演示樣例請求:
      curl -s -XGET theegg.me/docker/images/base/json | python -mjson.tool
    


      {
    "Architecture": "",
    "Author": "",
    "Comment": "",
    "Config": null,
    "Container": "3d67245a8d72ecf13f33dffac9f79dcdf70f75acb84d308770391510e0c23ad0",
    "ContainerConfig": {
        "AttachStderr": false,
        "AttachStdin": false,
        "AttachStdout": false,
        "Cmd": [
            "/bin/bash"
        ],
        "CpuShares": 0,
        "Cpuset": "",
        "Domainname": "",
        "Entrypoint": null,
        "Env": null,
        "ExposedPorts": null,
        "Hostname": "",
        "Image": "base",
        "Memory": 0,
        "MemorySwap": 0,
        "NetworkDisabled": false,
        "OnBuild": null,
        "OpenStdin": true,
        "PortSpecs": null,
        "StdinOnce": false,
        "Tty": true,
        "User": "",
        "Volumes": null,
        "WorkingDir": ""
    },
    "Created": "2013-03-23T22:24:18.818426-07:00",
    "DockerVersion": "",
    "Id": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
    "Os": "",
    "Parent": "27cf784147099545",
    "Size": 77
}

    



返回值解析:
Architecture:架構
Author:作者
Comment:評注
Config:配置
Container:當前使用該鏡像的容器
ContainerConfig:容器的配置
Created:創建時間
DockerVersion:Docker的版本號
Id:Id值
Os:操作系統
Parent:父鏡像的Id
Size:大小


ContainerConfig中:
AttachStderr:錯誤輸出是否有附著
AttachStdin:標準輸入是否有附著
AttachStdout:標準輸出是否有附著
Cmd:運行的命令,是一個數組
CpuShares:共享CPU值
Cpuset:所屬CPU集合
Domainname:域名
Entrypoint:實體點
Env:環境
ExposedPorts:對外暴露的port
Hostname:主機名
Image:鏡像名
Memory:內存占用
MemorySwap:內存交換
NetworkDisabled:是否禁用網絡
OnBuild:在構建
OpenStdin:是否打開標準輸入
PortSpecs:指定port
StdinOnce:以前使用標準輸入
Tty:是否使用TTY
User:用戶
Volumes: 使用卷
WorkingDir:工作文件夾


返回狀態碼:
200:沒有錯誤
404:沒有找到指定鏡像
500:server錯誤


獲取鏡像歷史

      GET /images/(name)/history
    


返回鏡像name的歷史


演示樣例請求:
      curl -XGET -s theegg.me/docker/images/base/history | python -mjson.tool
[
    {
        "Created": 1364102658,
        "CreatedBy": "/bin/bash",
        "Id": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
        "Size": 77,
        "Tags": [
            "base:latest",
            "base:ubuntu-12.10",
            "base:ubuntu-quantal",
            "base:ubuntu-quantl"
        ]
    },
    {
        "Created": 1364068391,
        "CreatedBy": "",
        "Id": "27cf784147099545",
        "Size": 175306958,
        "Tags": null
    }
]
    


返回值:
是一個數組,表示一系列鏡像




返回狀態碼:
200:沒有錯誤
404:沒有找到指定鏡像
500:server錯誤


上傳鏡像到registry

      POST /images/(name)/push
    


將名為name的鏡像上傳到registry
請求參數:
registry:你想要上傳到的registry


請求頭部:
X-Registry-Auth:包括一個base64編碼的AuthConfig對象,即{'username': string, 'password': string, 'email': string, 'serveraddress' : string}


返回狀態碼:
返回狀態碼:
200:沒有錯誤
404:沒有找到指定鏡像
500:server錯誤


將鏡像打上倉庫的標簽

      POST /images/(name)/tag
    


將名為name的鏡像打上倉庫的標簽
      curl -XPOST theegg.me/docker/images/base/tag?repo=a -i
    


      HTTP/1.1 201 Created
Server: nginx
Date: Tue, 29 Jul 2014 02:26:24 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 0
Connection: keep-alive
    


請求參數:
repo:指定要打的標簽的倉庫名
force:是否強制,默覺得false


返回狀態碼:
201:沒有錯誤
400:參數有誤
404:沒有找到指定的鏡像
409:矛盾
500:server錯誤


刪除一個鏡像

      DELETE /images/(name)
    


從文件系統上刪除名為name的鏡像
      curl -XDELETE theegg.me/docker/images/base
[
    {
        "Untagged": "base:latest"
    }
]
    




請求參數:
force:是否強制
noprune:是否啰嗦(待確定)


返回狀態碼:
200:沒有錯誤
404:沒有找到指定鏡像
500:server錯誤


搜索鏡像

      GET /images/search
    


在Docker Hub上搜索指定鏡像
演示樣例請求:
      curl -XGET -s theegg.me/docker/images/search?term=sshd | python -mjson.tool
    




      [
    {
        "description": "SSH Daemon created in the ssh daemon documentation example",
        "is_official": false,
        "is_trusted": false,
        "name": "dhrp/sshd",
        "star_count": 5
    },
    {
        "description": "Ubuntu 13.10 with openssh based on the stackbrew/ubuntu:13.10 image.",
        "is_official": false,
        "is_trusted": false,
        "name": "stephens/sshd",
        "star_count": 2
    },...
]
    




返回的是一個鏡像數組,每一個鏡像有:
description:描寫敘述信息
is_official:是否官方
is_trusted:是否受信任
name:名字
star_count:標星數


返回狀態碼:
200:沒有錯誤
500:server錯誤


[開源夏令營][四] Docker remote API 之 鏡像篇


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: se999se男人最爱| 天天操夜夜添 | 成人免费大片a毛片 | 久久中文字幕免费 | 五月婷在线视频 | 2021中文字幕亚洲精品 | 欧美一级精品 | 欧美精品亚洲精品日韩 | 九九热思思 | 香蕉欧美| 福利影院在线看 | 国内永久第一免费福利视频 | 97色偷偷9999www | 国内在线观看 | 四虎精品福利视频精品 | 欧美色爱综合 | 一级黄色片网站 | 日韩 欧美 国产 亚洲 中文 | a性视频| 久久久久久穴 | 激情五月综合网 | 国产一级片毛片 | 第四色奇米影视 | 亚洲黄色高清视频 | 欧美日韩中文字幕在线视频 | 国产精品第六页 | 精品一区二区三区免费观看 | 精品久草 | 日本免费不卡视频一区二区三区 | 久久精品亚洲一区二区 | 四虎国产精品免费久久久 | 999国内精品永久免费视频 | 成人性色生活片免费看爆迷你毛片 | 韩国办公室激情 | 国内精品一区二区 | 中文在线免费视频 | 久久草在线视频观看 | 色女孩综合 | 亚洲欧美综合一区二区三区四区 | 被公侵犯肉体中文字幕一区二区 | 深夜福利国产精品亚洲尤物 |