我正在通过容器shell更新docker镜像
docker run -it <image_name> /bin/bash -l
我已经退出了容器,现在想用
docker commit -m 'changes' -a 'me' <container ID> <image name>
但我不能再查看集装箱的ID了?docker ps仅列出正在运行的容器。如何获取被停集装箱的ID?
docker ps
eimct9ow1#
获取容器ID非常简单:
docker ps --all
-a或--all标志到docker ps列出了所有容器,而不仅仅是正在运行的容器。如果只需要最近退出的容器的ID,可以使用
-a
--all
docker ps --all -q | head -1
这可以方便地在docker commit命令中使用,因此您可以轻松地提交最新的更改,只需按几次并更改提交消息:
docker commit
docker commit -m 'changes' -a 'me' "$(docker ps --all -q | head -1)" <image name>
w3nuxt5m2#
docker ps -l(或--latest)将返回上次运行的容器(如果该容器不再运行)。要仅获取ID,请添加-q标志,因此docker ps -l -q(或docker ps -lq)将给予最后一次运行容器的ID
docker ps -l
--latest
ID
-q
docker ps -l -q
docker ps -lq
zhte4eai3#
如果你控制了容器的运行方式,你可以告诉Docker将容器ID保存到文件(docs)中:--cidfile将容器ID写入文件[...] cidfile标志使Docker尝试创建一个新文件并将容器ID写入其中。如果文件已经存在,Docker会返回错误。当docker run退出时,Docker会关闭这个文件。例如:
--cidfile
cidfile
docker run --cidfile cid.txt hello-world container_id=$(cat cid.txt)
3条答案
按热度按时间eimct9ow1#
获取容器ID非常简单:
-a
或--all
标志到docker ps
列出了所有容器,而不仅仅是正在运行的容器。如果只需要最近退出的容器的ID,可以使用
这可以方便地在
docker commit
命令中使用,因此您可以轻松地提交最新的更改,只需按几次并更改提交消息:w3nuxt5m2#
docker ps -l
(或--latest
)将返回上次运行的容器(如果该容器不再运行)。要仅获取
ID
,请添加-q
标志,因此docker ps -l -q
(或docker ps -lq
)将给予最后一次运行容器的ID
zhte4eai3#
如果你控制了容器的运行方式,你可以告诉Docker将容器ID保存到文件(docs)中:
--cidfile
将容器ID写入文件[...]cidfile
标志使Docker尝试创建一个新文件并将容器ID写入其中。如果文件已经存在,Docker会返回错误。当docker run退出时,Docker会关闭这个文件。例如: