关于docker rest api接口组件docker remote api的使用

前提:

     docker remote api 是docker自带的一个rest api 管理。

     只要在配置文件里面申明下就可以了。


下面是docker remote api的官方的功能目录:


wKiom1PrcYvTKgqfAAD_lg8pjg8050.jpg


通过接口获取所有的镜像 !

[root@dev-ops ~]$curl 'http://127.0.0.1:4243/images/json?all=0'| python -m json.tool 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
原文:   
[
     {
         "Created" : 1407902496,
         "Id" "57672d1b597912c7b6841c05c0e07e525890cfd64cbd37c84754e7d7e54ee766" ,
         "ParentId" "47386e322f5deffbc04c777632e1f1ac7e6ddd6909ae6b9ce8d1d78dc2bb6d0c" ,
         "RepoTags" : [
             "ubuntu_redis:latest"
         ],
         "Size" : 2675587,
         "VirtualSize" : 257554797
     },
     {
         "Created" : 1407684299,
         "Id" "636d86f228c7c6e844d1473245a9580d9c57fd0bfd1b5b9172aa5c168581978c" ,
         "ParentId" "e882dd610d1ca64817106dcbda29b2c78536f5fb75f780583cc9fac0efe05398" ,
         "RepoTags" : [
             "rastasheep/ubuntu-sshd:14.04"
         ],
         "Size" : 0,
         "VirtualSize" : 254925704
     },
     {
         "Created" : 1407342004,
         "Id" "1147568d245b369495b19b1943c0946a2b2d823d0a96b48bb7bee5f128090d29" ,
         "ParentId" "12175cbcbe499c80dd71e3085467d9178a1b5cfa47ecf1463302e09fe2f09e58" ,
         "RepoTags" : [
             "rastasheep/ubuntu-sshd:12.04"
         ],
         "Size" : 0,
         "VirtualSize" : 144645266
     },
     {
         "Created" : 1407341844,
         "Id" "8a63145eed52cf9ae6bdb064f370469d6fa3653f0da5d370ece9e270baf8d9cb" ,
         "ParentId" "ca60f67629d2c43012fb53f714e60672c4ad5b61520bb306e3a35614190dcf76" ,
         "RepoTags" : [
             "rastasheep/ubuntu-sshd:13.10"
         ],
         "Size" : 0,
         "VirtualSize" : 231639963
     },
     {
         "Created" : 1407167259,
         "Id" "47386e322f5deffbc04c777632e1f1ac7e6ddd6909ae6b9ce8d1d78dc2bb6d0c" ,
         "ParentId" "a8bbc54283bbc341c703970ed429e4def6c034273ede59aaf451449164c95775" ,
         "RepoTags" : [
             "rastasheep/ubuntu-sshd:latest"
         ],
         "Size" : 0,
         "VirtualSize" : 254879210
     },
     {
         "Created" : 1406884906,
         "Id" "b78c71c001db87eb2da7049f5f9610039afd3484f65e22a3284098792460040d" ,
         "ParentId" "e13b39edfcb4c5e15f876c2824fea1d738fb3825437162fad497138123f3235b" ,
         "RepoTags" : [
             "lemonbar/centos6-ssh:latest"
         ],
         "Size" : 0,
         "VirtualSize" : 296869021
     },
     {
         "Created" : 1405333140,
         "Id" "c9c48c3cb34c4b8305d7bae4f0c3c753fbca3ac96195e73e9fdab4a8fa24708a" ,
         "ParentId" "30ffc511bbe11f6205cdc0f2749cadcc0c2eca4f7296285b1af867afcb6ef842" ,
         "RepoTags" : [
             "rastasheep/ubuntu-sshd:12.10"
         ],
         "Size" : 0,
         "VirtualSize" : 188947523
     },
     {
         "Created" : 1405333120,
         "Id" "bf49ae3d55344648b354bddf22b2f15c48e2d74e52933404757a9eb470ac35e3" ,
         "ParentId" "561b2d67fd0a80367e9ab98f9893ce6d36006dbb452e7c8693f028fcaa5f6c7f" ,
         "RepoTags" : [
             "rastasheep/ubuntu-sshd:13.04"
         ],
         "Size" : 0,
         "VirtualSize" : 213124480
     }]


原文: http://rfyiamcool.blog.51cto.com/1030776/1539677     

#这里是查看已经启动了的docker容器情况 !


root@dev-ops:~# curl http://127.0.0.1:4243/containers/json | python -m json.tool

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[
     {
         "Command" "/usr/sbin/sshd -D" ,
         "Created" : 1407902166,
         "Id" "df7b7568fa7a8c65e7ce857378a01ed127109b4de5e6508123e4797a5c54bfbe" ,
         "Image" "rastasheep/ubuntu-sshd:latest" ,
         "Names" : [
             "/test_sshd"
         ],
         "Ports" : [
             {
                 "IP" "0.0.0.0" ,
                 "PrivatePort" : 22,
                 "PublicPort" : 49153,
                 "Type" "tcp"
             }
         ],
         "Status" "Up 3 hours"
     }
]


#查看某个容器的具体信息

root@dev-ops:~# curl -XGET 'http://127.0.0.1:4243/containers/df7b7568fa7a/json' | python -m json.tool

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
{
     "Args" : [
         "-D"
     ],
     "Config" : {
         "AttachStderr" false ,
         "AttachStdin" false ,
         "AttachStdout" false ,
         "Cmd" : [
             "/usr/sbin/sshd" ,
             "-D"
         ],
         "CpuShares" : 0,
         "Dns" : null,
         "Domainname" "" ,
         "Entrypoint" : null,
         "Env" : [
             "HOME=/" ,
             "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
         ],
         "ExposedPorts" : {
             "22/tcp" : {}
         },
         "Hostname" "df7b7568fa7a" ,
         "Image" "rastasheep/ubuntu-sshd" ,
         "Memory" : 0,
         "MemorySwap" : 0,
         "NetworkDisabled" false ,
         "OnBuild" : null,
         "OpenStdin" false ,
         "PortSpecs" : null,
         "StdinOnce" false ,
         "Tty" false ,
         "User" "" ,
         "Volumes" : null,
         "VolumesFrom" "" ,
         "WorkingDir" ""
     },
     "Created" "2014-08-13T03:56:06.602313986Z" ,
     "Driver" "aufs" ,
     "ExecDriver" "native-0.1" ,
     "HostConfig" : {
         "Binds" : null,
         "ContainerIDFile" "" ,
         "Links" : null,
         "LxcConf" : [],
         "PortBindings" : {
             "22/tcp" : [
                 {
                     "HostIp" "0.0.0.0" ,
                     "HostPort" "49153"
                 }
             ]
         },
         "Privileged" false ,
         "PublishAllPorts" true
     },
     "HostnamePath" "/var/lib/docker/containers/df7b7568fa7a8c65e7ce857378a01ed127109b4de5e6508123e4797a5c54bfbe/hostname" ,
     "HostsPath" "/var/lib/docker/containers/df7b7568fa7a8c65e7ce857378a01ed127109b4de5e6508123e4797a5c54bfbe/hosts" ,
     "ID" "df7b7568fa7a8c65e7ce857378a01ed127109b4de5e6508123e4797a5c54bfbe" ,
     "Image" "47386e322f5deffbc04c777632e1f1ac7e6ddd6909ae6b9ce8d1d78dc2bb6d0c" ,
     "Name" "/test_sshd" ,
     "NetworkSettings" : {
         "Bridge" "docker0" ,
         "Gateway" "172.17.42.1" ,
         "IPAddress" "172.17.0.3" ,
         "IPPrefixLen" : 16,
         "PortMapping" : null,
         "Ports" : {
             "22/tcp" : [
                 {
                     "HostIp" "0.0.0.0" ,
                     "HostPort" "49153"
                 }
             ]
         }
     },
     "Path" "/usr/sbin/sshd" ,
     "ResolvConfPath" "/etc/resolv.conf" ,
     "State" : {
         "ExitCode" : 0,
         "FinishedAt" "2014-08-13T06:42:46.204526996Z" ,
         "Ghost" false ,
         "Pid" : 4222,
         "Running" true ,
         "StartedAt" "2014-08-13T06:42:46.225958747Z"
     },
     "Volumes" : {},
     "VolumesRW" : {}
}


创建一个容器 !


[root@dev-ops ~]$curl -XPOST -H "Content-Type: application/json"  http://127.0.0.1:4243/containers/create -d '{ 

     "Hostname":"", 

     "User":"", 

     "Memory":0, 

     "MemorySwap":0, 

     "AttachStdin":false, 

     "AttachStdout":true, 

     "AttachStderr":true, 

     "PortSpecs":null, 

     "Privileged": false, 

     "Tty":false, 

     "OpenStdin":false, 

     "StdinOnce":false, 

     "Env":null, 

     "Dns":null, 

     "Image":"rastasheep/ubuntu-sshd", 

     "Volumes":{}, 

     "VolumesFrom":"", 

     "WorkingDir":"" 

}' 

1
{ "Id" : "d0274fdba510f643a0398cac36ee4caf9615b74e72452ff22951c96697f22c29" , "Warnings" :null}


可能会返回的状态 !

config – the container’s configuration

Status Codes:

201 – no error

404 – no such container

406 – impossible to attach (container not running)

500 – server error


#我们查看下结果

[root@dev-ops ~]$docker ps -a

1
2
3
4
5
6
CONTAINER ID        IMAGE                           COMMAND             CREATED              STATUS              PORTS                            NAMES
d0274fdba510        rastasheep /ubuntu-sshd :latest    /usr/sbin/sshd  -D   About a minute ago   Up 7 seconds        22 /tcp                            silly_turing        
2602cb4fb43b        rastasheep /ubuntu-sshd :latest    /usr/sbin/sshd  -D   2 minutes ago        Up 56 seconds       22 /tcp                            angry_lovelace      
1d20403be200        ubuntu_redis:latest              /usr/sbin/sshd  -D   3 hours ago          Up 3 minutes        22 /tcp , 0.0.0.0:6379->6379 /tcp    redis_6379          
c5f6d0240531        ubuntu_redis:latest              /usr/sbin/sshd  -D   6 hours ago          Exit 0                                               redis_sshd          
df7b7568fa7a        rastasheep /ubuntu-sshd :latest    /usr/sbin/sshd  -D   6 hours ago          Up 3 hours          0.0.0.0:49153->22 /tcp             test_sshd


查看容器内的top信息:

wKioL1PrdmSxycPkAAGX9o6qI90787.jpg


原文: http://rfyiamcool.blog.51cto.com/1030776/1539677 

关闭容器,启动容器:

1
2
3
root@dev-ops:~ # curl -s -XPOST "http://127.0.0.1:4243/containers/d0274fdba510/stop" 
root@dev-ops:~
root@dev-ops:~ # curl -s -XPOST "http://127.0.0.1:4243/containers/d0274fdba510/start"


wKiom1PrdDTQs0bAAAO4vClEaqk448.jpg



我这边就简单说下,详细的功能实现大家自己到官网look下吧。 说来也怪,docker时不时的抽风被墙 。我看了国外的论坛,貌似有些公司做了基于docker remote api实现的管理平台。   





 本文转自 rfyiamcool 51CTO博客,原文链接:http://blog.51cto.com/rfyiamcool/1539677,如需转载请自行联系原作者


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值