关于在 ASP.NET Core 和 Docker 中持久化数据的初学者问题

Posted

技术标签:

【中文标题】关于在 ASP.NET Core 和 Docker 中持久化数据的初学者问题【英文标题】:Beginner question about persisting data in ASP.NET Core and Docker 【发布时间】:2021-06-28 16:56:40 【问题描述】:

任务是将新员工上传到数据库,这很有效。但是,当我需要重新启动我运行的应用程序时 sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=mypassword' -p 1433:1433 -d microsoft/mssql-server-linux 然后 dotnet ef database update 这让我只有最初的播种数据。如何获得数据持久性?

【问题讨论】:

【参考方案1】:

有两种解决方法。我不会为您提供完整的解决方案,但会提供更多或类似的建议。

    第一次在你提到的命令的帮助下创建容器。

    sudo docker run --name sql1 -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=mypassword' -p 1433:1433 -d microsoft/mssql-server-linux 
    

给它起一个名字,就像我提供的一样--name sql1。

因此,当您停止时,请停止该容器。

  docker stop sql1

下次需要时

  docker start sql1

    下一个解决方案是音量。您必须在主机或某个共享目录中创建卷,并且它需要与 docker 共享,因此它将在那里存储数据,即使您销毁容器并再次创建它,它也会出现,然后它会被附加。

    https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-docker-container-configure?view=sql-server-ver15&pivots=cs1-bash

【讨论】:

以上是关于关于在 ASP.NET Core 和 Docker 中持久化数据的初学者问题的主要内容,如果未能解决你的问题,请参考以下文章

详解ASP.NET Core Docker部署

ASP.NET Core docker 构建错误

在 Docker (ASP.NET Core) 中更改时区

ASP.NET Core Web Api之JWT

Docker & ASP.NET Core 2.0 微服务跨平台实践

Asp.Net Core WebAPI+PostgreSQL部署在Docker中