在某些地方,当我阅读 Docker 容器时,我发现有些人说他们在重新启动容器时会丢失数据(保存在容器内,而不是卷数据的一部分)。
我尝试像这样创建一个简单的 Ubuntu 容器:docker run -it ubuntu /bin/bash
,并在容器内创建了一些文件,然后重新启动它,但我的数据仍然存在。为什么会发生这种情况?为什么我的数据还在?这是新版本的 Docker 中的新功能还是我对某些东西有误解?
在某些地方,当我阅读 Docker 容器时,我发现有些人说他们在重新启动容器时会丢失数据(保存在容器内,而不是卷数据的一部分)。
我尝试像这样创建一个简单的 Ubuntu 容器:docker run -it ubuntu /bin/bash
,并在容器内创建了一些文件,然后重新启动它,但我的数据仍然存在。为什么会发生这种情况?为什么我的数据还在?这是新版本的 Docker 中的新功能还是我对某些东西有误解?
删除容器时数据会丢失,而不是停止或重新启动时。
基本上,如果您这样做docker ps
,如果容器保持相同的 id(大而丑陋的十六进制 id),则数据不会丢失。
当您的 docker 容器不是由您管理,而是通过某种自动管理方法时,它会变得复杂。如果出现故障,此类工具通常会启动新容器。在这种情况下,您应该挂载一个卷以将数据存储在主机上。
您可能想查看容器生命周期: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
将在容器停止后将其移除。