我想创建一个环境来对已经准备好的映像运行测试。然而,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放在容器文件系统中,当进程退出时,容器文件系统将丢失。