【问题标题】:How to persist my appsettings.json to host machine from Docker container and mount that single file如何将我的 appsettings.json 从 Docker 容器持久保存到主机并挂载该单个文件
【发布时间】:2019-01-25 13:28:28
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: docker asp.net-core .net-core docker-volume linux-containers


    【解决方案1】:

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

    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
    

    【讨论】:

    • 谢谢,这对我有用,但是因为我在 linux 上,所以这是我使用的命令: docker run -d --name=name \ -p 80:80 \ -v /opt /dockertest2/appsettings.json:/app/appsettings.json\imagename
    【解决方案2】:

    我会为此使用持久存储,https://docs.docker.com/storage/ 上的 docker 文档将比我更好地解释如何用于您的目的。

    希望对你有帮助

    【讨论】:

    • 我知道它是绑定挂载还是 docker volume 我的挑战是它在什么时候复制文件,或者一旦我指定命令它会自动绑定它,例如使用docker run -v C:\app\appsettings.json:/publish/appsettings.json appname:latest 将自动复制从容器到主机的 appsettings.json 内容
    • 它是一个绑定到容器的卷,但除非指定,否则它不会随容器重置或更新。因此您可以在设置时将文件放在那里,然后将其保留在那里并从那里读取。我相信它应该像那样工作
    【解决方案3】:

    感谢@pressharp 这对我来说适用于 Linux:

    docker 运行 -d --name=name
    -p 80:80
    -v /opt/dockertest2/appsettings.json:/app/appsettings.json
    图片名称

    【讨论】:

      猜你喜欢
      • 2023-02-07
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      • 2021-01-13
      • 2021-01-13
      • 2019-07-08
      相关资源
      最近更新 更多