最近在开发一系统涉及到Docker的resful api的使用,正好做下记录,以下为常用的接口,其他的可以参考官方的手册https://docs.docker.com/engine/api/v1.37/#operation/ContainerAttach

  • 开启API配置
  • 使用方法

开启API配置

开启remote API: 
$ vi /etc/sysconfig/docker 
other_args="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"

使用方法

查看docker 版本

API: http://127.0.0.1:2375/version   => docker version

查看运行中的容器信息

API: http://127.0.0.1:2375/containers/json  => docker ps

查看镜像

API: http://127.0.0.1:2375/images/json  => docker images


创建容器(step 1)

POST /containers/create  
Content-Type: application/json
    {
    "Image": "$imgname",
        "Tty":true,
        "ExposedPorts": {
            "4200/tcp": {}
        },
        "HostConfig": {
            "PortBindings": {
                "4200/tcp": [{
                    "HostPort": "$port"
            }]
        }
    }
}

=> docker run -dit  -p $port:4200 $imgname

运行容器( step 2 )

API: 127.0.0.1:2375/containers/$id/start   => docker $id start

停止容器

API: 127.0.0.1:2375/containers/$id/stop  => docker $id stop

查看容器运行的进程信息

API: http://127.0.0.1:2375/containers/$id/top  =>  docker top $id

结果都是以json(stdclass)格式返回,需要稍作处理使用。