Docker API可以对Docker容器和镜像进行多种操作。下面是华纳云整理的有关Docker操作命令及解释!
Docker API的基本操作,如获取Docker的版本信息:
curl --unix-socket /var/run/docker.sock http://localhost/version
查询Docker的守护进程运行状态:
curl --unix-socket /var/run/docker.sock http://localhost/_ping
关于容器的相关操作,创建一个新容器:
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{
"Image": "nginx",
"Cmd": ["nginx", "-g", "daemon off;"]
}' -X POST http://localhost/containers/create
启动一个已创建未运行的容器:
curl --unix-socket /var/run/docker.sock -X POST http://localhost/containers/<container_id>/start
停止一个正在运行的容器:
curl --unix-socket /var/run/docker.sock -X POST http://localhost/containers/<container_id>/stop
删除一个容器,删除容器前提是要求容器状态属于已停止:
curl --unix-socket /var/run/docker.sock -X DELETE http://localhost/containers/<container_id>
获取容器日志:
curl --unix-socket /var/run/docker.sock http://localhost/containers/<container_id>/logs?stdout=true
查询所有镜像:
curl --unix-socket /var/run/docker.sock http://localhost/images/json
拉取镜像:
curl --unix-socket /var/run/docker.sock -X POST http://localhost/images/create?fromImage=nginx
删除一个镜像:
curl --unix-socket /var/run/docker.sock -X DELETE http://localhost/images/<image_id>
找出所有卷:
curl --unix-socket /var/run/docker.sock http://localhost/volumes
创建新的docker卷:
curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{
"Name": "myvolume"
}' -X POST http://localhost/volumes/create
删除卷:
curl --unix-socket /var/run/docker.sock -X DELETE http://localhost/volumes/<volume_name>
创建并且启动一个完整nginx容器的示例:
# 创建容器
CONTAINER_ID=$(curl --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -d '{
"Image": "nginx",
"Cmd": ["nginx", "-g", "daemon off;"]
}' -X POST http://localhost/containers/create | jq -r .Id)
# 启动容器
curl --unix-socket /var/run/docker.sock -X POST http://localhost/containers/$CONTAINER_ID/start
以上用curl创建一个nginx容器,在用jq提取容器ID最后启动容器。使用 以上命令可以在Docker API完成各种容器和镜像管理,这些操作要求在适当权限中执行,一般要有root权限或使用sudo来访问Docker Unix软件(/var/run/docker.sock)。