容器应该能够维持状态吗? 我正在使用像这样的SQLServer Image。
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux:2017-latest
然后我使用dotnet ef。
在其中创建一个数据库dotnet ef database update -v
数据库工作正常,直到我重新启动容器。此时我的数据库是gona,容器被重置为它的初始状态。
我错过了什么?容器不能保持状态吗? 如果是这样,将它们用于数据库的重点是什么?
答案 0 :(得分:2)
是的,如果您不删除容器,他们可以
docker stop xxx
或只是重新启动机器而不是使用
docker start xxx
或
docker restart xxx
如果您使用docker run
,则会创建一个新容器,因此之前没有可以谈论的状态。对于sql server,具体可以选择创建卷并在那里存储数据。如果你这样做,你可以删除一个容器并重新创建它而不会丢失数据,因为它不再存储在其中。