## 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集群
- 其他