首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用docker获取正在运行的容器的容器Id?

如何使用docker获取正在运行的容器的容器Id?
EN

Stack Overflow用户
提问于 2017-04-17 18:42:15
回答 3查看 4.2K关注 0票数 4

我正在运行一个带有名称标记的容器,它允许我识别it.In docker,它需要大多数操作的容器id,而且我不知道如何使用docker-java.an来获得运行容器的容器Id吗?

例如:

码头工人ps

代码语言:javascript
复制
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
8945dcd6195b        e7a064b1705a        "java '-Duser.time..."   4 days ago          Up 20 seconds                           runDataMock

我正在寻找一种方式,通过我可以获得ContainerId使用ContainerNames。

注意:我知道下面的方法,它创建一个新容器并选择id。dockerClient.createContainerCmd(imageName).exec().getId()

EN

回答 3

Stack Overflow用户

发布于 2018-05-14 09:41:39

您可以使用withXXX方法根据状态和其他属性过滤容器,但是在docker中没有WithNameFilter方法。解决办法是使用通用筛选器:

代码语言:javascript
复制
//get the docker client
DockerClient docker = DockerClientBuilder.getInstance(config).build();
//prepare command to retrieve the list of (running) containers 
ListContainersCmd listContainersCmd = client.listContainersCmd().withStatusFilter("running");
//and set the generic filter regarding name
listContainersCmd.getFilters().put("name", Arrays.asList("redis"));
//finally, run the command
List<Container> exec = listContainersCmd.exec();

就这样!

票数 1
EN

Stack Overflow用户

发布于 2018-05-30 06:30:32

如果您正在使用本地Daemon,您可以使用https://www.github.com/amihaiemil/docker-java-api,版本0.0.1刚刚发布。

要迭代所有正在运行的容器,只需执行以下操作:

代码语言:javascript
复制
final Containers containers = new LocalDocker(
    new File("/var/run/docker.sock")
).containers();
for(final Container running : containers) {
    System.out.println(running.containerId());
}

研究一下这个项目的自述,动机博客和wiki,它们都很短:)

票数 0
EN

Stack Overflow用户

发布于 2021-03-15 17:49:49

从这个最初的发布日期起,就经历了一些更新。要更新@amihaiemill对更新api的原始答案,代码应该是

代码语言:javascript
复制
final Docker docker = new UnixDocker( new File( "/var/run/docker.sock" ) );
final Containers containers = docker.containers();

for ( final Container running : containers ) {
    System.out.println( running.containerId() );
}

Thank you amihaiemil for your work on this project
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43457471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档