docker api java_docker-java Docker的java API

本文介绍了如何使用docker-java库与Docker API进行交互,包括配置Docker环境、设置API版本、搜索镜像、拉取镜像、创建和管理容器等基本操作。此外,还提供了通过编程配置、Properties文件、系统属性和环境变量设置配置的示例。
摘要由CSDN通过智能技术生成

docker-java

docker-java 是 Docker的 Java 版本API Docker

当前的实现基于 Jersey 2.x 因此 classpath 不兼容老版本的 Jersey 1.x !

版本支持

Supports a subset of the Docker Remote API v1.37, Docker Server version since 1.12.6

com.github.docker-java

docker-java

3.X.Y

当前最新的版本是3.1.0,可以点击这里查看最新版本。

com.github.docker-java

docker-java

3.1.0

wiki文档

For code examples, please look at the Wiki or Test cases

配置Docker环境

系统的可配置项及默认值如下:

DOCKER_HOST The Docker Host URL, e.g. tcp://localhost:2376 or unix:///var/run/docker.sock

DOCKER_TLS_VERIFY enable/disable TLS verification (switch between http and https protocol)

DOCKER_CERT_PATH Path to the certificates needed for TLS verification

DOCKER_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 dockerSearch = dockerClient.searchImagesCmd("busybox").exec();

System.out.println("Search returned" + dockerSearch.toString());

// pull

dockerClient.pullImageCmd("busybox:latest").exec(new ResultCallback() {

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

您的支持是对博主最大的鼓励,感谢您的认真阅读。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值