在编写启动 docker 容器的 bash 脚本时,引用已启动的 docker 容器很有用。docker容器启动时如何获取其具体的容器id?
PS 我知道我可以用来--name命名容器,我可以用它来过滤容器列表docker ps -aqf "name=containername",但如果我启动脚本两次,这将会失败。然后还有名称冲突的可能性。另外,如果你不能使用容器ID,那它们还有什么意义呢?
当您启动一个分离的容器时,它会返回容器 ID。例如:
$ docker run -d ubuntu:18.04
71329cf6a02d89cf5f211072dd37716fe212787315ce4503eaee722da6ddf18f
Run Code Online (Sandbox Code Playgroud)
在 bash 中,您可以从输出中定义一个新变量,如下所示:
CID=$(docker run -d ubuntu:18.04)
Run Code Online (Sandbox Code Playgroud)
然后,稍后您可以使用此变量来引用您的容器,如下所示:
docker stop $CID
docker rm $CID
Run Code Online (Sandbox Code Playgroud)
在“捕获容器 ID”docker run下的文档中,他们建议为此目的使用该标志。--cidfile
--cidfile接受文件名作为参数,并将容器的长 ID 写入该位置。例如,
docker run --cidfile /tmp/hello-world.cid hello-world && cat /tmp/hello-world.cid
Run Code Online (Sandbox Code Playgroud)
当您不想在分离状态下运行映像但仍想访问 ID 时,这非常有用。
| 归档时间: |
|
| 查看次数: |
5235 次 |
| 最近记录: |