如何在启动容器时获取Docker容器ID

5
写一个启动docker容器的bash脚本时,引用启动的docker容器很有用。当你启动容器时,如何获取特定的docker容器ID呢?
注:我知道可以使用“--name”给容器命名,这样就可以使用“docker ps -aqf“ name=containername””来过滤容器列表,但是如果我两次启动脚本就会失败。而且可能出现名称冲突的情况。此外,如果不能使用它们的话,容器ID有什么意义呢?
2个回答

7
当您启动一个分离的容器时,它会返回容器ID。例如:
$ docker run -d ubuntu:18.04
71329cf6a02d89cf5f211072dd37716fe212787315ce4503eaee722da6ddf18f

在bash中,您可以按以下方式从输出中定义一个新变量:
CID=$(docker run -d ubuntu:18.04)

然后,稍后您可以使用此变量来引用您的容器,如下所示:

docker stop $CID
docker rm $CID

5
docker run的文档中,针对"捕获容器 ID",建议使用--cidfile标志来实现该功能。 --cidfile接受一个文件名作为参数并将容器的长ID写入该位置。例如:
docker run --cidfile /tmp/hello-world.cid hello-world && cat /tmp/hello-world.cid

当你不想以分离状态运行镜像,但仍需要访问其ID时,此选项非常有用。


1
对于任何寻找的人:这在docker-compose中不可用。 - szmoore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接