docker 如何获取未运行容器的容器ID?

ru9i0ody  于 2023-06-29  发布在  Docker
关注(0)|答案(3)|浏览(187)

我正在通过容器shell更新docker镜像

docker run -it <image_name> /bin/bash -l

我已经退出了容器,现在想用

docker commit -m 'changes' -a 'me' <container ID> <image name>

但我不能再查看集装箱的ID了?docker ps仅列出正在运行的容器。如何获取被停集装箱的ID?

eimct9ow

eimct9ow1#

获取容器ID非常简单:

docker ps --all

-a--all标志到docker ps列出了所有容器,而不仅仅是正在运行的容器。
如果只需要最近退出的容器的ID,可以使用

docker ps --all -q | head -1

这可以方便地在docker commit命令中使用,因此您可以轻松地提交最新的更改,只需按几次并更改提交消息:

docker commit -m 'changes' -a 'me' "$(docker ps --all -q | head -1)" <image name>
w3nuxt5m

w3nuxt5m2#

docker ps -l(或--latest)将返回上次运行的容器(如果该容器不再运行)。
要仅获取ID,请添加-q标志,因此docker ps -l -q(或docker ps -lq)将给予最后一次运行容器的ID

zhte4eai

zhte4eai3#

如果你控制了容器的运行方式,你可以告诉Docker将容器ID保存到文件(docs)中:
--cidfile将容器ID写入文件[...] cidfile标志使Docker尝试创建一个新文件并将容器ID写入其中。如果文件已经存在,Docker会返回错误。当docker run退出时,Docker会关闭这个文件。
例如:

docker run --cidfile cid.txt hello-world
container_id=$(cat cid.txt)

相关问题