首页 > 解决方案 > 如何将我的 appsettings.json 从 Docker 容器持久保存到主机并挂载该单个文件

问题描述

我有一个 aspnetcore 应用程序,它已经被容器化并且运行正常,appsettings.jon 文件中节点 ConnectionStrings 的值是根据设置应用程序时从 Web 界面输入的值保存的,并且该文件不应该是在初始设置后更新应用程序后被覆盖,因为您知道容器是短暂的。我有一个 SetUpController 来执行此操作,并且一切正常,这样做的原因是应用程序为我们的大多数客户在本地运行,并且他们有不同的设置。

我的问题是如何确保 appsettings.jon 在容器更新时不会被覆盖。我希望能够在应用程序成功设置后将文件复制到主机卷,并在下次应用程序运行时从主机卷挂载 appsettings.json。我在 windows 和 Docker Toolbox 上使用 linux 容器,因为运行应用程序的系统无法安装 Docker for windows。

如何在应用程序运行时挂载存储在主机上的 appsettings.json?

我在网上查了一些想法,但似乎没有一个可行。

标签: dockerasp.net-core.net-coredocker-volumelinux-containers

解决方案


所以基本上因为我使用 Docker Toolbox for windows,默认情况下可用的主机文件夹是 /c/Users 你可以通过打开 VirtualBox -> settings -> Shared Folders 来检查它,但我试图挂载 /c/app 哪个 VM无权访问。所以我把我的运行命令改成了这个

docker run -d --name=containername -p 80:80 -v /c/Users/appsettings.json:/app/appsettings.json imagename

此外,如果您使用 Docker ToolBox for windows,请确保您正在安装的文件存在于该位置,然后再运行命令,在某些情况下,如果您遇到问题,我建议您也使用重新启动虚拟机

docker-machine restart default

推荐阅读