我是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
,所以我明白应该有准备好的配置来使用以前的配置启动新容器。当我想基于我的文件创建图像时,这会很有帮助,但首先我想将它们放入外部卷或我的设备存储中,只是为了在容器被删除或类似情况下保留所有日志。
提前感谢您的任何提示。
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
更简单。