用于保存 Loki 配置和数据文件的 Docker 卷

问题描述 投票:0回答:1

我是docker的初学者,所以我可能不明白它应该如何工作。 我有 loki 容器 - 这是

docker-compose.yml
的一部分:

loki:
  image: grafana/loki:latest
  ports:
    - "3100:3100"
  volumes:
    - /loki:/docker_data/loki_data
    - /etc/loki:/docker_data/loki_config
  networks:
    - monitoring
  (...)
networks:
  monitoring:

volumes:
  docker_data:
    external: true

功能运行良好,但它不使用我的外部卷(我手动创建的):

$ docker volume inspect docker_data
    [
        {
            "CreatedAt": "2023-12-08T15:26:05Z",
            "Driver": "local",
            "Labels": null,
            "Mountpoint": "/var/lib/docker/volumes/docker_data/_data",
            "Name": "docker_data",
            "Options": null,
            "Scope": "local"
        }
    ]

我想将

/loki
/etc/loki
中的内容保留在我的卷中,但卷仍然是
not in use
,并且我发现容器内部已创建了 2 个目录 ->
docker_data/loki_data
docker_data/loki_config
(但它们是空的,没有存储任何内容)。

问题是出了什么问题?如果可能的话,如何以最好的方式做到这一点?

大多数答案在第二个方向使用它,从外部获取目录到图像,但我有错误:

failed parsing config: /etc/loki/local-config.yaml does not exist, set config.file for custom config path
,所以我明白应该有准备好的配置来使用以前的配置启动新容器。当我想基于我的文件创建图像时,这会很有帮助,但首先我想将它们放入外部卷或我的设备存储中,只是为了在容器被删除或类似情况下保留所有日志。

提前感谢您的任何提示。

docker docker-compose volume docker-volume
1个回答
0
投票
  volumes:
    - /loki:/docker_data/loki_data
    - /etc/loki:/docker_data/loki_config

它没有 - 它使用

/loki
/etc/loki
(?)。如果您愿意,请安装该卷:

 volumes:
    - docker_data:/where/to/put/docker_data/volume/inside/loki/container
    #              ^^^^^^ path inside the container
    # ^^^^^^^^^^^ - volume
    #^ - no slash

我认为不可能在docker中挂载docker卷子目录,但也许现在是可能的。另外,由于 docker 卷可能难以管理,因此相对于 docker-compose 工作目录安装

volumes: - ./etc_loki:/etc/loki
更简单。

© www.soinside.com 2019 - 2024. All rights reserved.