Должны ли контейнеры сохранять состояние? Я использую 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
База данных работает нормально, пока я не перезапущу контейнер. В этот момент моя база данных исчезла, и контейнер был сброшен в исходное состояние.
Что мне не хватает? Контейнеры не сохраняются в состоянии? Если да, то какой смысл использовать их для баз данных?
docker stop 'идентификатор контейнера'
После этого вы будете использовать docker run ... или docker start ...?
докер запустить ....
Вы делаете ту же ошибку с этим парнем здесь: Я теряю свои данные при выходе из контейнера
docker run ... создает и запускает новый контейнер. docker start ... запускает остановленный контейнер.
Дох! Спасибо. Рад, что здесь мне не нужно создавать специальные постоянные тома, как начали показывать мои исследования.
Возможный дубликат Я теряю свои данные при выходе из контейнера





Да, они могут, если вы не удалите контейнер, чтобы вы могли
docker stop xxx
или просто перезагрузите компьютер и используйте
docker start xxx
или же
docker restart xxx
если вы используете docker run, вы создаете новый контейнер, поэтому не о каком предыдущем состоянии говорить. В частности, для sql server есть возможность создать том и хранить там данные. Если вы это сделаете, вы можете удалить контейнер и воссоздать его заново без потери данных, поскольку он больше не хранится внутри него.
Как "перезагрузить"? Какую команду вы используете?