FlyingMcdull

Docker Remote API

因为项目问题,需要编程远程操作和管理容器,有幸Docker提供了Restful API,又幸亏有神奇的网友写出了不同语言绑定的API Client,不用自己去写一套。这篇文章记录如何使用Java编程来操作远程Docker容器。

开启docker远程监听

在使用Restful API之前必须在Docker服务器端开启守护进程,监听相应的端口来响应API调用,直接命令行

1
2
service docker stop #如果之前已开启docker,先关掉
docker -d -H unix:///var/run/docker.sock -H tcp://0.0.0.0:4243 #端口号可以选择

使用docker-java API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import com.github.dockerjava.core.{DockerClientBuilder, DefaultDockerClientConfig}
/**
* Created by Xingjun Wong on 2016/12/18.
*/
object DockerTest {
def main(args: Array[String]) {
val config = DefaultDockerClientConfig.createDefaultConfigBuilder()
.withDockerHost("tcp://node216:4243")
val client = DockerClientBuilder.getInstance(config).build()
val images = client.listImagesCmd().exec()
println(images)
val info = client.infoCmd().exec()
println(info)
}
}

执行结果

直接编译执行上面的代码,可以看到执行结果:
result1
服务器端可以看到对本次本次请求的响应
result2