Docker是一套容器化平臺,通過它能夠輕松打包、分發和運行任何應用程序,從而實現應用程序在不同環境下快速遷移和部署的能力。Docker通過API提供了與硬件層的通信接口,使得開發人員可以通過RESTful API進行docker命令行操作。下面我們將介紹Docker命令行API的使用方法。
$ docker version Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:23:10 2020 OS/Arch: linux/amd64 Experimental: false
這是Docker的版本信息,可以看到當前API版本是1.40。
//列出所有正在運行的容器 $ curl -X GET http:/docker.com/containers/json //停止某個容器 $ curl -X POST http: //docker.com/containers/ContainerID/stop //啟動某個容器 $ curl -X POST http: //docker.com/containers/ContainerID/start
以上是Docker的常用命令行API,通過curl命令可以調用相關API接口,實現容器的啟動、停止、重啟、刪除等操作。
//創建一個新的容器 $ curl -H "Content-Type: application/json" -X POST -d '{ "Image": "mysql", "Env": ["MYSQL_ROOT_PASSWORD=password","MYSQL_DATABASE=db"], "ExposedPorts": {"3306/tcp": {}}, "HostConfig": {"PortBindings": {"3306/tcp": [{"HostPort": "3306"}]}}}' http://docker.com/containers/create?name=mysql //查看創建的容器ID $ curl -X GET --header "Accept: application/json" http://docker.com/containers/mysql | jq '.Id'
以上是創建Docker容器的命令行API,整個請求可以分為兩部分,一是容器的配置信息,通過-H參數指定請求頭的Content-Type,請求體為容器的配置信息。二是發起創建容器的請求,通過GET方法請求創建容器的API接口,指定容器的名稱為mysql。
總之,通過Docker命令行API可以實現與Docker之間的交互操作,方便開發人員實現快速的自動化部署和容器管理,提高工作效率和安全性。