Docker之API操作

API操作

1、容器-6

(1)查询docker系统信息

在registry节点通过docker api 查询docker的系统信息,将以上操作命令及检查结果填入命令行界面。

# curl -X GET http://localhost:2375/info

{"ID":"NLPH:KG5J:I3GD:RXLO:MPXS:CP3J:PXBP:MFQY:AUBM:YN3V:3EL6:HXEA","Containers":4,"ContainersRunning":3,"ContainersPaused":0,"ContainersStopped":1,"Images":38,"Driver":"devicemapper","DriverStatus":[["Pool Name","docker-253:1-771752128-pool"],["Pool Blocksize","65.54 kB"],["Base Device Size","10.74 GB"],["Backing Filesystem","xfs"],["Data file","/dev/loop1"],["Metadata file","/dev/loop2"],["Data Space Used","8.406 GB"],["Data Space Total","107.4 GB"],["Data Space Available","98.97 GB"],["Metadata Space Used","14.93 MB"],["Metadata Space Total","2.147 GB"],["Metadata Space Available","2.133 GB"],["Udev Sync Supported","true"],["Deferred Removal Enabled","false"],["Deferred Deletion Enabled","false"],["Deferred Deleted Device Count","0"],["Data loop file","/var/lib/docker/devicemapper/devicemapper/data"],["Metadata loop file","/var/lib/docker/devicemapper/devicemapper/metadata"],["Library Version","1.02.107-RHEL7 (2016-06-09)"]],"SystemStatus":null,"Plugins":{"Volume":["local"],"Network":["bridge","null","host"],"Authorization":null},"MemoryLimit":true,"SwapLimit":true,"CpuCfsPeriod":true,"CpuCfsQuota":true,"CPUShares":true,"CPUSet":true,"IPv4Forwarding":true,"BridgeNfIptables":false,"BridgeNfIp6tables":false,"Debug":false,"NFd":32,"OomKillDisable":true,"NGoroutines":49,"SystemTime":"2017-03-21T08:53:54.577574371Z","ExecutionDriver":"native-0.2","LoggingDriver":"journald","NEventsListener":0,"KernelVersion":"3.10.0-229.el7.x86_64","PkgVersion":"docker-common-1.10.3-46.el7.centos.14.x86_64","OperatingSystem":"CentOS Linux 7 (Core)","OSType":"linux","Architecture":"x86_64","IndexServerAddress":"https://192.168.200.12:5000/v1/","IndexServerName":"192.168.200.12:5000","RegistryConfig":{"InsecureRegistryCIDRs":["127.0.0.0/8"],"IndexConfigs":{"192.168.200.12:5000":{"Name":"192.168.200.12:5000","Mirrors":[],"Secure":false,"Official":false},"docker.io":{"Name":"docker.io","Mirrors":null,"Secure":true,"Official":true}},"Mirrors":null},"InitSha1":"171e8156748ca6b9e07d03098803bd7cee05e945","InitPath":"","NCPU":1,"MemTotal":2098581504,"DockerRootDir":"/var/lib/docker","HttpProxy":"","HttpsProxy":"","NoProxy":"","Name":"registry","Labels":null,"ExperimentalBuild":false,"ServerVersion":"1.10.3","ClusterStore":"","ClusterAdvertise":"","Registries":[{"Name":"192.168.200.12:5000","Secure":false},{"Name":"docker.io","Secure":true}]}

(2)查询docker版本信息

在registry节点通过docker api 查询docker的版本,将以上操作命令及检查结果填入命令行界面。

# curl -X GET http://localhost:2375/version

{"Version":"1.10.3","ApiVersion":"1.22","GitCommit":"cb079f6-unsupported","GoVersion":"go1.6.3","Os":"linux","Arch":"amd64","KernelVersion":"3.10.0-229.el7.x86_64","BuildTime":"2016-09-16T13:24:25.999281648+00:00","PkgVersion":"docker-common-1.10.3-46.el7.centos.14.x86_64"}

(3)列举docker容器

在registry节点通过docker api 查询docker内所有容器,将以上操作命令及检查结果填入命令行界面。

# curl -X GET http://localhost:2375/containers/json

[{"Id":"49cb289d6e7331650e75a253383bae15cfb88747b583230e8b618937cc08af45","Names":["/nginxweb"],"Image":"nginx:latest","ImageID":"sha256:01f818af747d88b4ebca7cdabd0c581e406e0e790be72678d257735fad84a15f","Command":"/bin/bash","Created":1490085333,"Ports":[{"IP":"0.0.0.0","PrivatePort":443,"PublicPort":32771,"Type":"tcp"},{"IP":"0.0.0.0","PrivatePort":80,"PublicPort":32772,"Type":"tcp"}],"Labels":{},"Status":"Up 8 minutes","HostConfig":{"NetworkMode":"default"},"NetworkSettings":{"Networks":{"bridge":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"","EndpointID":"9c9c6a870d284715eeab46ceb2b7d2dc368ad08fc5b50507a5ac4724d352dbdd","Gateway":"172.17.0.1","IPAddress":"172.17.0.4","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:04"}}}},{"Id":"0fa6b8c9ff49157f6c203dd918d7c27396e598022bc51f31be96b9a553579d44","Names":["/mysqldb","/nginxweb/db"],"Image":"mysql:latest","ImageID":"sha256:d9124e6c552f0e739ef130add0e215af6abfc6efc0b43cc26e5a16b15df6c1ff","Command":"docker-entrypoint.sh /bin/bash","Created":1490084698,"Ports":[{"IP":"0.0.0.0","PrivatePort":3306,"PublicPort":32770,"Type":"tcp"}],"Labels":{},"Status":"Up 8 minutes","HostConfig":{"NetworkMode":"default"},"NetworkSettings":{"Networks":{"bridge":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"","EndpointID":"b7aa4ac3e259272b5405dfd9cc3443b394d155c409f2a06d5a33953b6fd6cfa1","Gateway":"172.17.0.1","IPAddress":"172.17.0.3","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:03"}}}},{"Id":"940568599bb2864b5b88768a5a87202b4786ba123ba2647a97106d43aeebcd6b","Names":["/registry"],"Image":"192.168.200.12:5000/registry:latest","ImageID":"sha256:c9bd19d022f6613fa0e3d73b2fe2b2cffe19ed629a426db9a652b597fccf07d4","Command":"/entrypoint.sh /etc/docker/registry/config.yml","Created":1486963059,"Ports":[{"IP":"0.0.0.0","PrivatePort":5000,"PublicPort":5000,"Type":"tcp"}],"Labels":{},"Status":"Up 9 minutes","HostConfig":{"NetworkMode":"default"},"NetworkSettings":{"Networks":{"bridge":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"","EndpointID":"2a5ef2c24eac60ae86f90faa50c271a6a6bc375a501127c6b0f8824cc77915c6","Gateway":"172.17.0.1","IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}}}}]

(4)创建容器

在registry节点使用docker api 通过mariadb镜像创建docker容器,设置数据库密码为0000000,暴露3306端口,监听的地址为0.0.0.0,将以上操作命令及检查结果填入命令行界面。

# curl -X POST -H "Content-Type: application/json" -d '{

    "Image": "mariadb",

    "Env": ["MYSQL_ROOT_PASSWORD=000000"],

    "ExposedPorts": {

        "3306/tcp": {}

    },

    "HostConfig": {

        "PortBindings": {

            "3306/tcp": [{"HostIp": "","HostPort": "3306"}]

        }

    },

    "NetworkSettings": {

        "Ports": {

            "5000/tcp": [{"HostIp": "0.0.0.0","HostPort": "3306"}]

        }

    }

}' http://localhost:2375/containers/create

 

{"Id":"b20699b782bbb87702e72d046820b6c3558da86b50ff4b60714f8af33ed860db","Warnings":null}

(5)启动

在registry节点利用docker api将上题创建的容器启动,将以上操作命令及检查结果填入命令行界面。

# curl -X  POST -H "Content-Type: application/json" http://localhost:2375/containers/b20699b782bb/start

(6)删除

在registry节点利用docker api将上题创建的容器停止,待容器停止运行后删除该容器,将以上操作命令及检查结果填入命令行界面。

# curl -X  POST -H "Content-Type: application/json" http://localhost:2375/containers/b20699b782bb/stop

# curl -X  DELETE http://localhost:2375/containers/b20699b782bb

2、镜像

(1)列举docker镜像

在registry节点通过docker api 查询docker内所有镜像,将以上操作命令及检查结果填入命令行界面。

# curl -X GET http://localhost:2375/images/json   

[{"Id":"sha256:271f7878a277b2270d23c399d3890c2aa22b19392a9fcdaadf1a6376bade5633","ParentId":"","RepoTags":["192.168.200.12:5000/rancher/server:v1.1.4-xd"],"RepoDigests":null,"Created":1483690104,"Size":877175326,"VirtualSize":877175326,"Labels":{}},{"Id":"sha256:01f818af747d88b4ebca7cdabd0c581e406e0e790be72678d257735fad84a15f","ParentId":"","RepoTags":["192.168.200.12:5000/nginx:latest"],"RepoDigests":null,"Created":1482861378,"Size":181586402,"VirtualSize":181586402,"Labels":{}},{"Id":"sha256:86e302671af465e21742fb4932322012da8abaff5134a7dd194dc47944461549","ParentId":"","RepoTags":["192.168.200.12:5000/mongo:latest"],"RepoDigests":null,"Created":1480543691,"Size":401895934,"VirtualSize":401895934,"Labels":{}},{"Id":"sha256:01aa08d0dd3ea71795db51148d3f36ff2cbab4f762bae9b88eb571ef2c305e31","ParentId":"","RepoTags":["192.168.200.12:5000/grafana/grafana:latest"],"RepoDigests":null,"Created":1480443048,"Size":266088718,"VirtualSize":266088718,"Labels":{}},{"Id":"sha256:4deeb1bb77d334bbacfb265d991b8b25db97807ee655482825203cb2dff85bf0","ParentId":"","RepoTags":["192.168.200.12:5000/gogs/gogs:latest"],"RepoDigests":null,"Created":1479953640,"Size":90230824,"VirtualSize":90230824,"Labels":{}},{"Id":"sha256:d9124e6c552f0e739ef130add0e215af6abfc6efc0b43cc26e5a16b15df6c1ff","ParentId":"","RepoTags":["192.168.200.12:5000/mysql:latest"],"RepoDigests":null,"Created":1479935271,"Size":383407086,"VirtualSize":383407086,"Labels":{}},{"Id":"sha256:709795b4afb7ae6a6d779d8ec4fd3ebcbd24f19b59013c24c1530ffc97857e85","ParentId":"","RepoTags":["192.168.200.12:5000/ghost:latest"],"RepoDigests":null,"Created":1479931856,"Size":333711465,"VirtualSize":333711465,"Labels":{}},{"Id":"sha256:786192493b9636f621b8b833cbdacbd0926a70a8ebf8fdebc593a772dd1d0015","ParentId":"","RepoTags":["192.168.200.12:5000/rocketchat/rocket.chat:latest"],"RepoDigests":null,"Created":1479757218,"Size":438959709,"VirtualSize":438959709,"Labels":{}},{"Id":"sha256:ee2b371c11fece9c6878ad6fd449b489f5ffd1cadb72f471a8a41159bd5d2a3a","ParentId":"","RepoTags":["192.168.200.12:5000/wordpress:latest"],"RepoDigests":null,"Created":1479236116,"Size":420022954,"VirtualSize":420022954,"Labels":{}},{"Id":"sha256:e6426963df2bd4f815c52c9c3f0e78e32e938ba175eaf1b0057de57d873cc9dd","ParentId":"","RepoTags":["192.168.200.12:5000/owncloud:latest"],"RepoDigests":null,"Created":1479175281,"Size":591198667,"VirtualSize":591198667,"Labels":{}},{"Id":"sha256:66498efd6bd883981c923ebf14bb7ea334862b5154c47dd295eefd3c4ad9e105","ParentId":"","RepoTags":["192.168.200.12:5000/mariadb:latest"],"RepoDigests":null,"Created":1478632829,"Size":389852025,"VirtualSize":389852025,"Labels":{}},{"Id":"sha256:5b9483827da584b75889cfb8e0e70f2d18e0df7fc85c17a46781e781c17ee8c0","ParentId":"","RepoTags":["192.168.200.12:5000/rocketchat/hubot-rocketchat:latest"],"RepoDigests":null,"Created":1477082062,"Size":800347427,"VirtualSize":800347427,"Labels":{}},{"Id":"sha256:c9bd19d022f6613fa0e3d73b2fe2b2cffe19ed629a426db9a652b597fccf07d4","ParentId":"","RepoTags":["192.168.200.12:5000/registry:latest"],"RepoDigests":null,"Created":1476835847,"Size":33274815,"VirtualSize":33274815,"Labels":{}},{"Id":"sha256:e02e811dd08fd49e7f6032625495118e63f597eb150403d02e3238af1df240ba","ParentId":"","RepoTags":["192.168.200.12:5000/busybox:latest"],"RepoDigests":null,"Created":1475874238,"Size":1093484,"VirtualSize":1093484,"Labels":{}},{"Id":"sha256:d5c0410b1b443d3ed805078d498526590ae76fc42a1369bc814eb197f5ee102b","ParentId":"","RepoTags":["192.168.200.12:5000/jenkins:1.651.3"],"RepoDigests":null,"Created":1465943211,"Size":736848020,"VirtualSize":736848020,"Labels":{}},{"Id":"sha256:6dccaa66a75df90dadeff351ad66d7599caa8043cd65417bd24e4a92be4e95d9","ParentId":"sha256:a51341bcd2319e5a8815ba01a3d4bdc25de0ab7f21b059f02e670839b7641a32","RepoTags":["192.168.200.12:5000/rancher/agent-instance:v0.8.3"],"RepoDigests":null,"Created":1465923024,"Size":330911216,"VirtualSize":330911216,"Labels":{}},{"Id":"sha256:deb5c6987c83abbd0f902fc29c0d73a16f1e4272d77bce3952e44961c29e9fdd","ParentId":"sha256:a248a1782a3a3129bb59d802dc73000c8bcf4b9af762769d5a35a1b69d02786f","RepoTags":["192.168.200.12:5000/rancher/agent:v1.0.2"],"RepoDigests":null,"Created":1465918352,"Size":454279633,"VirtualSize":454279633,"Labels":{"io.rancher.container.system":"rancher-agent"}},{"Id":"sha256:5ec859f0de3b8401754488b957856746e6487f2448a528ec482db8103d199104","ParentId":"","RepoTags":["192.168.200.12:5000/opensaas/concrete5:latest"],"RepoDigests":null,"Created":1462627686,"Size":607956816,"VirtualSize":607956816,"Labels":{}},{"Id":"sha256:ebdc8e295a2e1ab288c2a2e42d322c14903235674315ee651a07f080991c5da8","ParentId":"sha256:c63f0c2d4c9a678e08f225dd17e90941ec3fcf8b9923472f90086d48550608eb","RepoTags":["192.168.200.12:5000/ubuntu:14.04.3"],"RepoDigests":null,"Created":1453246284,"Size":187899635,"VirtualSize":187899635,"Labels":null},{"Id":"sha256:5084a1fd8838833143d20e195b3bfdf857f9e0926991fef25b5ab36ece34c789","ParentId":"","RepoTags":["192.168.200.12:5000/rancher/jenkins-plugins:v0.1.1"],"RepoDigests":null,"Created":1445879495,"Size":10524928,"VirtualSize":10524928,"Labels":null}]

(2)查询镜像详细信息

在registry节点通过docker api相关命令查询rancher/server镜像的具体信息,将以上操作命令及检查结果填入命令行界面。

# curl -X GET http://localhost:2375/images/271f7878a277/json

{"Id":"sha256:271f7878a277b2270d23c399d3890c2aa22b19392a9fcdaadf1a6376bade5633","RepoTags":["192.168.200.12:5000/rancher/server:v1.1.4-xd"],"RepoDigests":[],"Parent":"","Comment":"","Created":"2017-01-06T08:08:24.763808016Z","Container":"0de0eec98d56b02ef71f720d9d2da1dc34e29fc1c9a437f1cbd10f1da0f17fce","ContainerConfig":{"Hostname":"0de0eec98d56","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"ExposedPorts":{"3306/tcp":{},"8080/tcp":{}},"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","DEBIAN_FRONTEND=noninteractive","CATTLE_HOME=/var/lib/cattle","DEFAULT_CATTLE_API_UI_INDEX=//releases.rancher.com/ui/1.1.14","CATTLE_DB_CATTLE_DATABASE=mysql","CATTLE_USE_LOCAL_ARTIFACTS=true","no_proxy=localhost,127.0.0.1,localaddress,.localdomain.com","S6_SERVICE_DIR=/service","CATTLE_HOST_API_PROXY_MODE=embedded","CATTLE_RANCHER_SERVER_VERSION=v1.1.4","CATTLE_RANCHER_COMPOSE_VERSION=v0.8.6","DEFAULT_CATTLE_RANCHER_COMPOSE_LINUX_URL=http://10.0.0.254/openstack/rancher-compose-linux-amd64-v0.8.6.tar.gz","DEFAULT_CATTLE_RANCHER_COMPOSE_DARWIN_URL=http://10.0.0.254/openstack/rancher-compose-darwin-amd64-v0.8.6.tar.gz","DEFAULT_CATTLE_RANCHER_COMPOSE_WINDOWS_URL=http://10.0.0.254/openstack/rancher-compose-windows-386-v0.8.6.zip","DEFAULT_CATTLE_CATALOG_URL=library=https://git.oschina.net/onlytaicai/rancher-catalog.git,community=https://git.oschina.net/onlytaicai/community-catalog.git","CATTLE_CATTLE_VERSION=v0.165.8.4","DEFAULT_CATTLE_MACHINE_EXECUTE=true","DEFAULT_CATTLE_COMPOSE_EXECUTOR_EXECUTE=true","DEFAULT_CATTLE_CATALOG_EXECUTE=true","CATTLE_RANCHER_SERVER_IMAGE=rancher/server"],"Cmd":["/usr/bin/s6-svscan","/service"],"Image":"rancher/server:v1.1.4-xd","Volumes":{"/var/lib/cattle":{},"/var/lib/mysql":{},"/var/log/mysql":{}},"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":{}},"DockerVersion":"1.10.3","Author":"","Config":{"Hostname":"","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"ExposedPorts":{"3306/tcp":{},"8080/tcp":{}},"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","DEBIAN_FRONTEND=noninteractive","CATTLE_HOME=/var/lib/cattle","DEFAULT_CATTLE_API_UI_INDEX=//releases.rancher.com/ui/1.1.14","CATTLE_DB_CATTLE_DATABASE=mysql","CATTLE_USE_LOCAL_ARTIFACTS=true","no_proxy=localhost,127.0.0.1,localaddress,.localdomain.com","S6_SERVICE_DIR=/service","CATTLE_HOST_API_PROXY_MODE=embedded","CATTLE_RANCHER_SERVER_VERSION=v1.1.4","CATTLE_RANCHER_COMPOSE_VERSION=v0.8.6","DEFAULT_CATTLE_RANCHER_COMPOSE_LINUX_URL=http://10.0.0.254/openstack/rancher-compose-linux-amd64-v0.8.6.tar.gz","DEFAULT_CATTLE_RANCHER_COMPOSE_DARWIN_URL=http://10.0.0.254/openstack/rancher-compose-darwin-amd64-v0.8.6.tar.gz","DEFAULT_CATTLE_RANCHER_COMPOSE_WINDOWS_URL=http://10.0.0.254/openstack/rancher-compose-windows-386-v0.8.6.zip","DEFAULT_CATTLE_CATALOG_URL=library=https://git.oschina.net/onlytaicai/rancher-catalog.git,community=https://git.oschina.net/onlytaicai/community-catalog.git","CATTLE_CATTLE_VERSION=v0.165.8.4","DEFAULT_CATTLE_MACHINE_EXECUTE=true","DEFAULT_CATTLE_COMPOSE_EXECUTOR_EXECUTE=true","DEFAULT_CATTLE_CATALOG_EXECUTE=true","CATTLE_RANCHER_SERVER_IMAGE=rancher/server"],"Cmd":["/usr/bin/s6-svscan","/service"],"Image":"","Volumes":{"/var/lib/cattle":{},"/var/lib/mysql":{},"/var/log/mysql":{}},"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":{}},"Architecture":"amd64","Os":"linux","Size":877175326,"VirtualSize":877175326,"GraphDriver":{"Name":"devicemapper","Data":{"DeviceId":"166","DeviceName":"docker-253:1-771752128-1348916a13f1dc44fb619cecde1f1691b1926bda5a08a8ed6b80578b45895aca","DeviceSize":"10737418240"}}}

(3)容器提交镜像

在registry节点利用docker api查询运行的docker仓库的容器系统文件的变更,将以上操作命令及检查结果填入命令行界面。

# curl  -X GET http://localhost:2375/containers/940568599bb2/changes

[{"Path":"/run","Kind":0},{"Path":"/run/secrets","Kind":1},{"Path":"/var","Kind":0},{"Path":"/var/lib","Kind":0},{"Path":"/var/lib/registry","Kind":1},{"Path":"/root","Kind":0},{"Path":"/root/.ash_history","Kind":1}]

 

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值