docker自定义docker ps及常用组合命令

来源:互联网 发布:记忆单词的技巧 知乎 编辑:程序博客网 时间:2024/05/16 02:10

我们开发过程中, 有部分是截取docker ps的监控, 但是dockerps 的所属信息较少,比如父进程号, 子进程号, 当前挂载信息等没有办法能够获取,故此我们需要自定义输出我们定制的docker ps.

docker inspect  容器号或容器名称能够输出容器的详细信息,如:

[{

    "Architecture":"amd64",

    "Author":"wangzhehan",

    "Comment":"Added hadoop hive client",

    "Config": {

       "AttachStderr": false,

       "AttachStdin": false,

       "AttachStdout": false,

       "Cmd": [

           "/bin/bash"

        ],

       "CpuShares": 0,

       "Cpuset": "",

       "Domainname": "",

       "Entrypoint": null,

       "Env": null,

       "ExposedPorts": {

           "22/tcp": {}

        },

       "Hostname": "",

       "Image": "",

       "MacAddress": "",

       "Memory": 0,

       "MemorySwap": 0,

       "NetworkDisabled": false,

       "OnBuild": null,

       "OpenStdin": false,

       "PortSpecs": null,

       "StdinOnce": false,

       "Tty": false,

       "User": "root",

       "Volumes": null,

       "WorkingDir": ""

    },

    "Container":"42062e85e250e46fdc1867da1e5a53bfea16a770515e94d81fd6cfc7ae9ba675",

   "ContainerConfig": {

       "AttachStderr": true,

       "AttachStdin": true,

       "AttachStdout": true,

       "Cmd": [

           "/bin/bash"

        ],

       "CpuShares": 0,

       "Cpuset": "",

       "Domainname": "",

       "Entrypoint": null,

       "Env": null,

       "ExposedPorts": {

           "22/tcp": {}

        },

       "Hostname": "42062e85e250",

       "Image": "jdclient/centos:7",

       "MacAddress": "",

       "Memory": 0,

       "MemorySwap": 0,

       "NetworkDisabled": false,

       "OnBuild": null,

       "OpenStdin": true,

       "PortSpecs": null,

       "StdinOnce": true,

       "Tty": true,

       "User": "root",

       "Volumes": null,

       "WorkingDir": ""

    },

    "Created":"2015-06-18T02:50:53.120470388Z",

    "DockerVersion":"1.5.0",

    "Id":"f0f749cfd553c13842b1c0bf4aadec7ce4b769142c58548cce484e24a6287c95",

    "Os":"linux",

    "Parent":"9b6f4bdec10036c3966c1f2e81bf3d3b3570a277a40d860d669557476d1211ec",

    "Size": 16191,

    "VirtualSize":1109989744

}

]

 

自定义格式则.可以是:

   定制显示docker列:

   docker inspect --format='{{.State.Pid}}{{.Name}}' `docker ps -a -q`

   显示则是 pid 与容器名称

   对应个格式为 一级属性{{.属性}} 二级属性 {{.属性.属性}} 三级属性 {{.属性.属性.属性}}

   比如{{.State.Pid}} , {{.Name}} , {{.Os}}

   显示: 1064 , 镜像名 , linux

 

常用监控命令:

   docker ps -a -q | wc -l   监控容器数量

   docker ps -q | wc -l     正在运行的容器的数量

   docker ps -a | grep -v 'Up '  | grep -v'CONTAINER' | wc -l  非运行状态的容器的数量

 

获取docker执行进程

  docker top `docker ps -q`

 

删除docker容器

   docker rm -f `docker ps -a -q`  删除所有容器

   docker rm `docker ps -a -q`  删除非运行的容器 

   docker rm `docker ps -a | grep Exited | awk'{print $1}'`  删除异常退出的容器

删除docker无引用的镜像

   docker rmi -f `docker images | grep'<none>' | awk '{print $3}'`

0 0
原创粉丝点击