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

时间:2019-05-20 09:48:40

标签: docker

在编写启动docker容器的bash脚本时,引用已启动的docker容器很有用。启动时如何获取Docker容器的特定容器ID?

P.S。我知道我可以使用docker ps -aqf "name=containername"来命名容器,可以使用{{1}}来过滤容器列表,但是如果我两次启动脚本都会失败。还有名称冲突的可能性。此外,如果您不能使用容器ID,那还有什么意义呢?

2 个答案:

答案 0 :(得分:2)

启动分离的容器时,它将返回容器ID。例如:

$ docker run -d ubuntu:18.04
71329cf6a02d89cf5f211072dd37716fe212787315ce4503eaee722da6ddf18f

在bash中,您可以从输出中定义一个新变量,如下所示:

CID=$(docker run -d ubuntu:18.04)

然后,稍后您可以使用此变量来像这样引用您的容器:

docker stop $CID
docker rm $CID

答案 1 :(得分:1)

"capture container id"docker run的文档中,他们建议为此使用--cidfile标志。

--cidfile将文件名作为参数,并将容器的长ID写入该位置。例如,

docker run --cidfile /tmp/hello-world.cid hello-world && cat /tmp/hello-world.cid

当您不想以分离状态运行映像,但仍想访问ID时,此功能很有用。