最新容器上的Docker exec命令,无需复制和粘贴ID

最新容器上的Docker exec命令,无需复制和粘贴ID,docker,Docker,我发誓我不久前使用过一个选项,您可以启动一个容器,然后在下一个docker命令中,您可以使用该容器而无需显式引用其ID或别名—它可能是“容器列表中的第一个容器”或“最近创建的容器”。但是我在谷歌上找不到任何东西 我的想象是这样的: docker run --detach -it ubuntu:latest docker exec -it {0} bash 有这样的事吗?如果您想与某人共享有关旋转某些东西的说明,而不必复制和粘贴(或键入)他们的特定容器ID,这将非常有用。收集了几种解决方案,以下

我发誓我不久前使用过一个选项,您可以启动一个容器,然后在下一个docker命令中,您可以使用该容器而无需显式引用其ID或别名—它可能是“容器列表中的第一个容器”或“最近创建的容器”。但是我在谷歌上找不到任何东西

我的想象是这样的:

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变量 我不完全理解在这种情况下,
$\uu
会有什么帮助,所以不能给出一个例子

方便参考的其他提示
您不必复制整个ID。如果键入
a
作为容器ID,它将找到以该字符序列开头的容器。如果存在多个匹配项,并且该命令可以接受多个容器ID,则该命令仍将有效(例如,
docker kill a
将杀死ID以字母
a
开头的所有容器)

如果您想引用它,则可能应该给它一个名称,特别是如果你想教别人这个
-说出docker运行的最后一个参数,那么下一行的
$\uu
都是很好的答案(尽管你能解释一下
$\u
是什么吗?我在搜索时很难理解解释。我想我回忆的是
$(docker ps—最新—安静)