我有一个安装了MariaDB的Docker容器。我没有使用任何卷。
[vagrant@devops ~]$ sudo docker volume ls
DRIVER VOLUME NAME
[vagrant@devops ~]$
现在发生了一些奇怪的事情。当我执行sudo docker stop
和sudo docker start
时,MariaDB数据仍然存在。我预计这些数据会丢失。
当我编辑某个文件时,例如/etc/hosts
我确实看到了预期的行为。重启后,此文件的更改将丢失。
如果没有卷,MariaDB数据是如何持久的?这不应该发生吗?
答案 0 :(得分:2)
docker stop
不会删除容器,docker start
也不会创建容器。
docker run
从图片创建新容器。
docker start
启动一个确实存在但之前已停止过的容器(如果愿意,可以将其称为暂停/恢复)。
因此,对于启动/停止,不需要卷来保持状态持久。
如果你确实docker stop <name> && docker rm <name>
然后docker start <name>
得到错误,容器就不再存在了 - 那么现在你需要docker run <args> youimage