我发誓我前段时间使用了一个选项,您可以在其中启动一个容器,然后在下一个 docker 命令中,您可以对该容器执行某些操作,而无需显式引用其 ID 或别名——要么它是“第一个容器”在您的容器列表中”或“最近创建的容器”。但我在 Google 上找不到任何内容。
我的想象力是这样记忆的:
docker run --detach -it ubuntu:latest
docker exec -it {0} bash
有这样的事吗?当您想与某人分享有关旋转某物的说明而无需他们复制和粘贴(或键入)其特定容器 ID 的任何内容时,这很有用。
最佳答案
收集了几种解决方案,这里有一些方法(随时用你的方法更新答案):
硬编码容器名称
这可能是最紧凑的解决方案
docker run --detach --name my_container -it ubuntu:latest
docker exec -it my_container bash
获取您最近创建的 docker 容器 ID
这是我一直记得的。
docker run --detach -it ubuntu:latest
docker exec -it $(docker ps --latest --quiet) bash
# you can also filter by ancestor (image) if other containers have been launched
# in the meanwhile:
docker exec -it $(docker ps --latest --quiet --filter ancestor=ubuntu:latest) bash
使用 shell 变量
我不完全理解 $_
在这种情况下会有什么帮助,所以不能举个例子。
其他便于引用的提示
您不必复制整个 ID。如果您键入 a
作为容器 ID,它将找到以该字符序列开头的容器。如果有多个匹配项并且该命令可以接受多个容器 ID,它仍然可以工作(例如,docker kill a
将杀死所有 ID 以字母 a
开头的容器)
关于最新容器上的 Docker exec 命令,无需复制和粘贴 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46596086/