当我读到有关Docker容器的任何地方时,我发现很多人们在重新启动容器时会说他们丢失了数据(保存在容器内而不是卷数据的一部分)。 / p>
我试图像这样创建一个简单的Ubuntu容器:docker run -it ubuntu /bin/bash
,并在容器内创建了一些文件,然后重新启动它,但我的数据仍然存在。为什么会这样呢?为什么我的数据仍然存在?在较新版本的Docker中这是新功能还是我对某些内容有误解?
答案 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 rm
和docker run
,您的州将不再存在。
如果您想要一个瞬态容器,
docker run --rm
将在停止后移除容器。