在docker-compose.yml中有两项服务。那些从存储库获取图像。
首次使用docker-compose up -d
启动服务。效果很好,一段时间后由于Docker更新和重启而停止了图像。
然后使用docker start
仅启动其中一张图像。它运行良好,并且在再次更新并重新启动(几个月后)之后,执行了docker-compose up -d
。在这种情况下,先前手动创建的服务已重新创建,并且数据丢失。首先,这可以恢复吗,其次,可以预期吗?
谢谢
答案 0 :(得分:1)
预计您的数据将丢失。您需要在容器上安装一个“卷”,并将数据存储在该卷中以保留它。这样,无论您销毁容器还是使用完全不同的容器都没有关系。您总是可以挂载数据量,并且很好。 https://docs.docker.com/storage/volumes/ 是否有办法恢复?我真的不这么认为,但我不是100%确定...
也许也可以更清楚地检查一下为什么第二次重建容器What is the difference between docker-compose up and docker-compose start?
答案 1 :(得分:-1)
这里的结论是,docker-compose up -d
将始终使容器内的数据丢失。如果容器已停止,而您使用docker-compose start
,则容器内的数据将像以前一样继续。这里的数据是指容器内的数据,而不是卷上的数据。这可以是日志,其他应用程序数据等。
因此,如果需要保留数据,请使用卷,就像有时容器有可恢复的错误并且无法启动/重新启动一样,您将丢失内部的数据/文件。您将不得不重新构建/ docker-compose。