如何恢复docker映像的快照(出于测试目的,每次测试都在同一个docker映像上)



我想创建一个环境来对已经准备好的映像运行测试。然而,docker存储了以前运行的测试的结果,可以用来说明

sudo docker run -t myname/test_base echo "test" >> /tmp/t; cat /tmp/t
test
sudo docker run -t myname/test_base echo "test" >> /tmp/t; cat /tmp/t
test
test

如果我只是想恢复图像的初始状态,该怎么办?

sudo docker run -t myname/test_base echo "test" >> /tmp/t; cat /tmp/t
test
<some magic>
sudo docker run -t myname/test_base echo "test" >> /tmp/t; cat /tmp/t
test

这不是您正在更改的docker映像。它是您的主机文件系统。您使用的bash重定向'>>'将docker run命令的stdout放入主机文件系统上的/tmp/t中。若要恢复状态,您需要删除该文件。

我想你想要的是

docker run test_base bash -c 'echo test >> /tmp/t'

这将把echo放在容器文件系统中,当进程退出时,容器文件系统将丢失。

最新更新