docker - 如何将我的 appsettings.json 从 Docker 容器持久保存到主机并挂载该单个文件
问题描述
我有一个 aspnetcore 应用程序,它已经被容器化并且运行正常,appsettings.jon 文件中节点 ConnectionStrings 的值是根据设置应用程序时从 Web 界面输入的值保存的,并且该文件不应该是在初始设置后更新应用程序后被覆盖,因为您知道容器是短暂的。我有一个 SetUpController 来执行此操作,并且一切正常,这样做的原因是应用程序为我们的大多数客户在本地运行,并且他们有不同的设置。
我的问题是如何确保 appsettings.jon 在容器更新时不会被覆盖。我希望能够在应用程序成功设置后将文件复制到主机卷,并在下次应用程序运行时从主机卷挂载 appsettings.json。我在 windows 和 Docker Toolbox 上使用 linux 容器,因为运行应用程序的系统无法安装 Docker for windows。
如何在应用程序运行时挂载存储在主机上的 appsettings.json?
我在网上查了一些想法,但似乎没有一个可行。
解决方案
所以基本上因为我使用 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
推荐阅读
- c# - Akka .Net 演员分离
- r - Gam 是 R 返回“自由度”或“下标越界”错误
- amazon-s3 - 从 S3 加载 spark DF,多个文件。这些方法中哪一种最好?
- java - Google Drive API v3-在Java文件夹中创建一个文件夹
- php - 通过 PHP 将不规则 XML 导入 MySQL
- integration-testing - 为公共存储库保护测试数据的方法
- php - Bash 执行 PHP 脚本 - 权限被拒绝
- game-development - 平铺地图编辑器切断导入 png 的边缘
- angular - 角度 2 如何在表单控件上设置初始错误状态
- python - Ubuntu 18.04 “ModuleNotFoundError: No module named 'boto3'” 在“pip install boto3”之后?