docker-java Docker的java API
2019-01-22 09:28
1026 查看
docker-java
docker-java 是 Docker的 Java 版本API Docker
当前的实现基于 Jersey 2.x 因此 classpath 不兼容老版本的 Jersey 1.x !
开发者论坛 docker-java
版本支持
Supports a subset of the Docker Remote API v1.37, Docker Server version since 1.12.6
<dependency> <groupId>com.github.docker-java</groupId> <artifactId>docker-java</artifactId> <!-- use latest version https://github.com/docker-java/docker-java/releases --> <version>3.X.Y</version> </dependency>
当前最新的版本是3.1.0,可以点击这里查看最新版本。
<dependency> <groupId>com.github.docker-java</groupId> <artifactId>docker-java</artifactId> <version>3.1.0</version> </dependency>
wiki文档
For code examples, please look at the Wiki or Test cases
配置Docker环境
系统的可配置项及默认值如下:
DOCKER_HOST
The Docker Host URL, e.g.tcp://localhost:2376
orunix:///var/run/docker.sock
DOCKER_TLS_VERIFY
enable/disable TLS verification (switch betweenhttp
andhttps
protocol)DOCKER_CERT_PATH
Path to the certificates needed for TLS verificationDOCKER_CONFIG
Path for additional docker configuration files (like.dockercfg
)api.version
The API version, e.g.1.23
.registry.url
Your registry's address.registry.username
Your registry username (required to push containers).registry.password
Your registry password.registry.email
Your registry email.
There are three ways to configure, in descending order of precedence:
编程方式配置:
DockerClientConfig config = DefaultDockerClientConfig.createDefaultConfigBuilder() .withDockerHost("tcp://my-docker-host.tld:2376") .withDockerTlsVerify(true) .withDockerCertPath("/home/user/.docker/certs") .withDockerConfig("/home/user/.docker") .withApiVersion("1.30") // optional .withRegistryUrl("https://index.docker.io/v1/") .withRegistryUsername("dockeruser") .withRegistryPassword("ilovedocker") .withRegistryEmail("dockeruser@github.com") .build(); DockerClient docker = DockerClientBuilder.getInstance(config).build();
通过Properties (docker-java.properties)
DOCKER_HOST=tcp://localhost:2376 DOCKER_TLS_VERIFY=1 DOCKER_CERT_PATH=/home/user/.docker/certs DOCKER_CONFIG=/home/user/.docker api.version=1.23 registry.url=https://index.docker.io/v1/ registry.username=dockeruser registry.password=ilovedocker registry.email=dockeruser@github.com
通过System Properties:
java -DDOCKER_HOST=tcp://localhost:2375 -Dregistry.username=dockeruser pkg.Main
通过 Environment
export DOCKER_HOST=tcp://localhost:2376 export DOCKER_TLS_VERIFY=1 export DOCKER_CERT_PATH=/home/user/.docker/certs export DOCKER_CONFIG=/home/user/.docker
测试
我们来简单测试下:
DockerClient dockerClient = createClient(); // docker info Info info = dockerClient.infoCmd().exec(); System.out.print(info); // 搜索镜像 List<SearchItem> dockerSearch = dockerClient.searchImagesCmd("busybox").exec(); System.out.println("Search returned" + dockerSearch.toString()); // pull dockerClient.pullImageCmd("busybox:latest").exec(new ResultCallback<PullResponseItem>() { public void onStart(Closeable closeable) { } public void onNext(PullResponseItem object) { System.out.println(object.getStatus()); } public void onError(Throwable throwable) { throwable.printStackTrace(); } public void onComplete() { System.out.println("pull finished"); } public void close() throws IOException { } }); // 创建container 并测试 // create CreateContainerResponse container = dockerClient.createContainerCmd("busybox") .withCmd("/bin/bash") .exec(); // start dockerClient.startContainerCmd(container.getId()).exec(); dockerClient.stopContainerCmd(container.getId()).exec(); dockerClient.removeContainerCmd(container.getId()).exec(); EventsResultCallback callback = new EventsResultCallback() { @Override public void onNext(Event event) { System.out.println("Event: " + event); super.onNext(event); } }; dockerClient.eventsCmd().exec(callback).awaitCompletion().close();
作者:Jadepeng
出处:jqpeng的技术记事本--http://www.cnblogs.com/xiaoqi
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章推荐
- 免费电子面单Api_快递鸟接口JAVA对接调用案例
- elasticsearch基本操作之--java基本操作 api
- Java虚拟用户常用API
- java.net.UnknownHostException: Unable to resolve host "api1.51zhenghao.cn": No address associated w
- Elasticsearch Java API (i)
- java使用淘宝API读写json实现手机归属地查询功能代码
- Java基础——常用API
- Java 利用脚本API运行Groovy脚本的方式
- docker搭建java网站tomcat
- zookeeper Java客户端API的使用方法
- JAVA学习第三十四课 (常用对象API)—List集合及其子类特点
- 调用Java编译器API编译Java源代码
- redis集群、单机java客户端API开源框架
- docker api 获取stats数据的方式
- JAVA学习第三十五课(常用对象API)—Vector、LinkedList、ArrayList集合演示
- Hbase的java api操作小结
- Zookeeper系列(八)Zookeeper客户端(JAVA)API之节点检查和权限控制
- jdk7 新特性-Java语言的动态性-脚本语言支持api-脚本引擎01
- java学习之其他对象API
- Hbase for Java API