我可以在没有提交的情况下维护docker容器的状态

时间:2017-01-19 05:48:19

标签: docker

我有一个docker容器正在运行,想知道我是否可以在不提交的情况下保存其状态。 例如: 1.启动容器 2.在其中创建一个新文件 3.退出容器 4.启动容器

在退出之前,如果没有运行docker commit,文件仍然可以存在于此容器中。

1 个答案:

答案 0 :(得分:2)

Docker的stoppedexited容器,维护容器可写AUFS layer中的文件和更改。请注意移除容器时将移除此图层

POC:

sudo docker run -it --name test debian:jessie /bin/bash
root@3d01feb251bd:/# touch farhad
root@3d01feb251bd:/# exit

sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
3d01feb251bd        debian:jessie       "/bin/bash"              16 seconds ago      Exited (0) 7 seconds ago                       test

sudo docker start test

sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
3d01feb251bd        debian:jessie       "/bin/bash"         31 seconds ago      Up 8 seconds                            test

sudo docker exec -it test /bin/bash
root@3d01feb251bd:/# ls
bin  boot  dev  etc  farhad  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

正如您所见,退出容器前我触摸的文件仍在那里。