Docker App 运行 Inside Container 1 应该如何从容器 2 中读取文件,容器 2 是挂载到主机的卷

How does Docker App Running Inside Container 1 should read file from Container 2 which is Volume Mounted to Host Machine

我们有这样的设置。

Container 1 -> C# Web Application
Container 2 -> Redis Db (The dump file is volume mounted to host machine for persistence purpose)

有一个 docker 组合文件 运行 两个容器在一起,link 它们在一个网络下。使用此 C# 应用程序能够访问 Redis 数据库并且一切正常。

现在我们想在我们的应用程序中实现一个功能,应用程序应该定期备份 RedisDb 并将其上传到云端。即复制Redis DB的volume mounted dump文件上传到云端

这可以实现吗?我无法在互联网上的任何地方找到详细信息,无法了解容器 1 中的应用 运行ning 如何访问容器 2 的卷装载文件。

您也可以在容器 1 上安装相同的 redis 持久卷(对于您的目的,只读模式就足够了)。那么 dump.rdb 文件将可供您的 C# 应用程序访问。

示例:

version: "3.9"
services:
  redis:
    image: redis
    volumes:
      - /redis_data_path_on_host:/usr/share/nginx/html
  app:
    image: app
    volumes:
      - /redis_data_path_on_host:/usr/share/nginx/html:ro