首页 > 解决方案 > docker-java 使用 -rm 标志运行容器

问题描述

我正在使用docker-java来生成新容器。我想在容器完成后移除它们。有没有办法用 docker-java 实现这一点?

所以我基本上想要类似的东西

docker run --rm my-docker

使用 docker-java。

标签: javadockerdocker-java

解决方案


Docker HTTP API中,docker run --rm选项转换为对象AutoRemove内的选项HostConfig。Java API 反映了这种对象布局。docker-javawiki没有使用该对象的任何好的示例,但它也在Java API 中

import com.github.dockerjava.api.command.CreateContainerResponse;
import com.github.dockerjava.api.model.HostConfig;

HostConfig hostConfig = HostConfig
  .newHostConfig()
  .withAutoRemove(true);             // Set the "remove" flag

CreateContainerResponse container = dockerClient
  .createContainerCommand("busybox")
  .withHostConfig(hostConfig)        // Add in the HostConfig object
  .exec();

推荐阅读