在编写启动docker容器的bash脚本时,引用已启动的docker容器很有用。启动时如何获取Docker容器的特定容器ID?
P.S。我知道我可以使用docker ps -aqf "name=containername"
来命名容器,可以使用{{1}}来过滤容器列表,但是如果我两次启动脚本都会失败。还有名称冲突的可能性。此外,如果您不能使用容器ID,那还有什么意义呢?
答案 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时,此功能很有用。