## docker/engine-api項目簡介
docker/engine-api項目是從docker engine項目獨立出來的子項目,它的代碼主要抽取于docker engine項目的command line(命令行)的操作的部分.所以他可以完成通過命令行完成的功能.
#### 作用
* 有了這個項目,就可以擺脫命令行的方式來操作docker engine.使用http的方式與各個節點的docker engine進行溝通.甚至可以用它來自己來開發一個docker的圖形界面化的管理系統.
* docker為我們提供了一個遠程操作docker服務的api[《Docker Remote API》](https://docs.docker.com/engine/reference/api/docker_remote_api/).但是使用這種方式有一個缺點就是你必須自己封裝http請求,自己根據json格式來定義相關的數據結構.docker/engine-api項目其實就是幫助我們解決了這樣繁瑣的工作.
* docker/engine-api項目可以實現遠程操作docker engine服務
* 采用golang開發,原生兼容docker
* 項目開源:github地址:https://github.com/docker/engine-api
## docker/engine-api使用方式
### 1.項目下載與安裝
如果你的golang開發中用到docker/engine-api項目.需要做如下的包引入操作
```
go get github.com/docker/engine-api
cd $GOPATH/src/github.com/docker/engine-api && make deps
```
第一個命令引入engine-api項目,第二個命令引入項目依賴
### 2.操作本地docker engine
```
//獲取client
defaultHeaders := map[string]string{"User-Agent": "engine-api-cli-1.0"}
cli, err := client.NewClient("unix:///var/run/docker.sock", "v1.22", nil, defaultHeaders)
if err != nil {
panic(err)
}
//獲取本機所有的容器
options := types.ContainerListOptions{All: true}
containers, err := cli.ContainerList(context.Background(), options)
if err != nil {
panic(err)
}
//打印容器id
for _, c := range containers {
fmt.Println(c.ID)
}
```
### 3.操作遠程主機docker engine
```
defaultHeaders := map[string]string{"User-Agent": "engine-api-cli-1.0"}
cli, err := client.NewClient("tcp://192.168.1.158:2375", "v1.22", nil, defaultHeaders)
```
**注意:第一個參數tcp://192.168.1.158:2375**
- 版權
- 博客主題
- 如何不去做運行3.5G-docker鏡像的工程師
- 預備主題
- FastDFS快速入門
- mysql定時創建月表
- SpringMVC-Restful
- Docker生態系統
- The Docker Ecosystem: An Introduction to Common Components
- docker監控指標
- 基于etcd服務發現的overlay跨多宿主機容器網絡
- etcd:從應用場景到實現原理的全方位解讀
- docker存儲驅動詳解
- 使用docker/engine-api操作docker
- 提升Docker安全性
- docker安全之用戶資源隔離
- marathon
- 開始
- 安裝mararhon
- 高可用模式
- 使用marathon
- 應用的部署
- 架構組件
- Dubbo與Zookeeper、SpringMVC整合和使用(負載均衡、容錯)
- Openstack架構解析
- haproxy
- Ubuntu系統安裝截圖
- mesos官方文檔
- 關于譯者
- mesos基礎
- Mesos架構
- 視頻與ppt
- 讓mesos跑起來
- 快速入門
- 配置
- Containerizer
- Docker Containerizer
- 監控
- 博客文章集
- 煮餃子與mesos之間妙不可言的關系
- linux運維
- 基礎篇
- 進階篇
- mysql
- Ubuntu14.04安裝mysql5.6
- MySQL 5.6 replicate原理與實踐
- mysql性能
- redis
- redis安裝及基礎知識
- redis數據結構
- redis命令
- redis數據持久化
- Redis主從復制
- redis集群
- 其他