如何确定未知docker卷的容器id或映像名称



请如何确定未知docker卷的容器id或映像名称例如,我可以通过运行命令'docker volume ls'找到docker卷的列表,但不幸的是,当我构建一些映像时,我没有装载特定的卷,所以我的大多数容器都是在没有卷名的情况下构建的。下面列出了一些具有未知名称的卷的示例

3199e3e4f3c2b79f04b84523959cb250223a229fca2ba16540cdbfd77762a552c1cba1883daed381d83d9940d48e5f5ceed327614c58dc4bfa3cd7a6849274ff2545f7def79e8c59dd8fc2a6d6de83876231554a738d25fe1f1f93c6b3eb9f9cce0fdd8ef8bae1e19aa41864e25f074929863a771b0ec729a119e2e880f7

请如何确定未知docker卷的容器id或映像名称

例如,我如何确定哪些卷适用于MYSQL、JENKINS和PROMETHEUS??

我的问题原因

我正试图在Grafana上启用警报,这样我就可以通过电子邮件收到通知,但我收到了这个错误消息

"对于电子邮件提醒,我收到此消息。SMTP未配置,请检查grafana.ini配置文件的[SMTP]部分">

这意味着我必须编辑安装在docker grafana卷中的grafana.ini配置文件,但我无法做到这一点。

我会感谢你的帮助。

感谢

请使用:

docker ps -a --filter volume={{reference}}

示例:

docker ps -a --filter volume=3199e3e4f3c2b79f04b84523959cb250223a229fca2ba16540cdbfd77762a552

您不需要使用Grafana卷(实际上,当前的Grafana官方图像默认情况下没有任何卷(。您可以使用env变量配置Grafana。它们具有语法GF_<grafana ini section>_<upper case properties>

grafama.ini配置:

#################################### SMTP / Emailing #####################
[smtp]
enabled = true

可以通过Docker容器env变量实现:

GF_SMTP_ENABLED: true

理论上,您还可以使用卷,并将默认容器/etc/grafana/grafana.ini文件与自己自定义的grafana.ini一起ovewrite。

要查看哪个卷映射到哪个容器,可以尝试:

sudo docker ps -a --format '{{ .ID }}' | xargs -I {} docker inspect -f '{{ .Name }}{{ printf "n" }}{{ range .Mounts }}{{ printf "nt" }}{{ .Type }} {{ if eq .Type "bind" }}{{ .Source }}{{ end }}{{ .Name }} => {{ .Destination }}{{ end }}{{ printf "n" }}' {}

这列出了所有容器及其附加的卷。

我建议在外部托管grafana.ini文件。不一定是通过卷,而是通过文件绑定,并通过环境变量告诉grafana在哪里可以找到grafana.ini。这使您可以直接访问容器外的文件。这是docker命令的一部分。

-v /data/docker/volumes/grafana-config/grafana2.ini:/etc/grafana/grafana2.ini 
-e "GF_PATHS_CONFIG=/etc/grafana/grafana2.ini" 

上面的命令将显示如下内容:

/grafana
bind /data/grafana/grafana-config/grafana2.ini => /etc/grafana/grafana2.ini
volume grafana-storage => /var/lib/grafana

最新更新