重启容器后,为什么Docker容器中的非卷数据持久性?

时间:2016-11-28 17:24:14

标签: docker docker-container

当我读到有关Docker容器的任何地方时,我发现很多人们在重新启动容器时会说他们丢失了数据(保存在容器内而不是卷数据的一部分)。 / p>

我试图像这样创建一个简单的Ubuntu容器:docker run -it ubuntu /bin/bash,并在容器内创建了一些文件,然后重新启动它,但我的数据仍然存在。为什么会这样呢?为什么我的数据仍然存在?在较新版本的Docker中这是新功能还是我对某些内容有误解?

2 个答案:

答案 0 :(得分:3)

移除容器时数据会丢失,而不是在停止或重新启动容器时丢失。

基本上,如果你做docker ps,如果容器保持相同的id(丑陋的十六进制id),数据就不会丢失。

当您的docker容器不是由您管理时,它会变得复杂,但是通过某种自动化管理方法。像这样的工具通常会在出现故障时启动新容器。在这种情况下,您应该安装一个卷来将数据存储在主机上。

答案 1 :(得分:2)

您可能希望查看容器生命周期:https://github.com/wsargent/docker-cheat-sheet#lifecycle

  

docker create创建一个容器但不启动它。

     

docker rename允许重命名容器。

     

docker run在一次操作中创建并启动容器。

     

docker rm删除容器。

     

docker update更新容器的资源限制。

如果再次执行docker rmdocker run,您的州将不再存在。

  

如果您想要一个瞬态容器,docker run --rm将在停止后移除容器。