如何确定未知 docker 卷的容器 ID 或映像名称
How to determine the container id or image name of an unknown docker volume
请问如何确定未知docker卷的容器ID或图像名称?
例如,我能够通过 运行 命令 'docker volume ls' 找到 docker 卷的列表,但不幸的是,当我构建一些我没有安装特定卷的图像,所以我的大部分容器都是在没有卷名的情况下构建的。下面列出了一些名称未知的卷示例
3199e3e4f3c2b79f04b84523959cb250223a229fca2ba16540cdbfd77762a552
c1cba1883daed381d83d9940d48e5f5aceed327614c58dc4bfa3cd7a6849274f
f2545f7cdef79e8c59dd8fc2a6d6de83876231554a738d25fe1f61f93c6b3eb9
f9cce0cfdd8ef8bae1e19aa41864e25f074929863a771b0ec729a119e2e880f7
请问如何确定未知 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
要查看哪个卷映射到哪个容器,您可以尝试:
sudo docker ps -a --format '{{ .ID }}' | xargs -I {} docker inspect -f '{{ .Name }}{{ printf "\n" }}{{ range .Mounts }}{{ printf "\n\t" }}{{ .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
您不需要使用 Grafana 卷(实际上,当前的官方 Grafana 图像默认情况下没有任何卷)。您可以使用环境变量配置 Grafana。它们的语法为 GF_<grafana ini section>_<upper case properties>
.
grafama.ini
配置:
#################################### SMTP / Emailing #####################
[smtp]
enabled = true
可以通过Docker容器环境变量实现:
GF_SMTP_ENABLED: true
理论上您还可以使用卷并使用您自己的自定义 grafana.ini
.
覆盖默认容器 /etc/grafana/grafana.ini
文件
请问如何确定未知docker卷的容器ID或图像名称? 例如,我能够通过 运行 命令 'docker volume ls' 找到 docker 卷的列表,但不幸的是,当我构建一些我没有安装特定卷的图像,所以我的大部分容器都是在没有卷名的情况下构建的。下面列出了一些名称未知的卷示例
3199e3e4f3c2b79f04b84523959cb250223a229fca2ba16540cdbfd77762a552 c1cba1883daed381d83d9940d48e5f5aceed327614c58dc4bfa3cd7a6849274f f2545f7cdef79e8c59dd8fc2a6d6de83876231554a738d25fe1f61f93c6b3eb9 f9cce0cfdd8ef8bae1e19aa41864e25f074929863a771b0ec729a119e2e880f7
请问如何确定未知 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
要查看哪个卷映射到哪个容器,您可以尝试:
sudo docker ps -a --format '{{ .ID }}' | xargs -I {} docker inspect -f '{{ .Name }}{{ printf "\n" }}{{ range .Mounts }}{{ printf "\n\t" }}{{ .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
您不需要使用 Grafana 卷(实际上,当前的官方 Grafana 图像默认情况下没有任何卷)。您可以使用环境变量配置 Grafana。它们的语法为 GF_<grafana ini section>_<upper case properties>
.
grafama.ini
配置:
#################################### SMTP / Emailing #####################
[smtp]
enabled = true
可以通过Docker容器环境变量实现:
GF_SMTP_ENABLED: true
理论上您还可以使用卷并使用您自己的自定义 grafana.ini
.
/etc/grafana/grafana.ini
文件