【发布时间】:2022-10-13 20:28:28
【问题描述】:
以分离模式(docker run -d foo)运行 docker 容器会返回容器 id(长版本)。但它可以返回(随机生成的)容器名称吗?由于command reference 没有表示这样的功能,我尝试使用xargs 将返回的id 传递到docker ps 命令中:
docker run -d -p 8080:8080 container-name | xargs -I % docker ps --format '{{.Names}}' --filter id=%
这不起作用,因为 id 没有真正返回,而是仅由 docker run 打印,或者因为我没有正确使用 xargs。
【问题讨论】:
-
But that does not seem to work<= this does not accurately describe your problem -
空字节问题 =>
... | xargs -0 -I % docker ps --format '{{.Names}}' --filter id=%。请注意,由于您启动的是单个容器,因此使用子 shell 可能更简单:docker ps --format '{{.Names}}' --filter id=$(docker run -d -p 8080:8080 image-name)