{"id":418474,"date":"2022-03-19T14:00:43","date_gmt":"2022-03-19T11:00:43","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-run-grafana-in-a-docker-container-cloudsavvy-it\/"},"modified":"2022-03-19T14:00:43","modified_gmt":"2022-03-19T11:00:43","slug":"how-to-run-grafana-in-a-docker-container-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-run-grafana-in-a-docker-container-cloudsavvy-it\/","title":{"rendered":"#How to Run Grafana In a Docker Container \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a36e9456454f\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a36e9456454f\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-run-grafana-in-a-docker-container-cloudsavvy-it\/#%E2%80%9CHow_to_Run_Grafana_In_a_Docker_Container_%E2%80%93_CloudSavvy_IT%E2%80%9D\" >&#8220;How to Run Grafana In a Docker Container \u2013 CloudSavvy IT&#8221;<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-run-grafana-in-a-docker-container-cloudsavvy-it\/#Getting_Started\" >Getting Started<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-run-grafana-in-a-docker-container-cloudsavvy-it\/#Selecting_an_Image_Variant\" >Selecting an Image Variant<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-run-grafana-in-a-docker-container-cloudsavvy-it\/#Creating_a_Container\" >Creating a Container<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-run-grafana-in-a-docker-container-cloudsavvy-it\/#Injecting_Configuration\" >Injecting Configuration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-run-grafana-in-a-docker-container-cloudsavvy-it\/#Overriding_the_Config_File\" >Overriding the Config File<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-run-grafana-in-a-docker-container-cloudsavvy-it\/#Managing_Plugins\" >Managing Plugins<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-run-grafana-in-a-docker-container-cloudsavvy-it\/#Creating_a_Custom_Image\" >Creating a Custom Image<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-run-grafana-in-a-docker-container-cloudsavvy-it\/#Summary\" >Summary<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E2%80%9CHow_to_Run_Grafana_In_a_Docker_Container_%E2%80%93_CloudSavvy_IT%E2%80%9D\"><\/span>&#8220;How to Run Grafana In a Docker Container \u2013 CloudSavvy IT&#8221;<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<div id=\"article-content-area\">\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage aligncenter size-full wp-image-15286\" data-pagespeed-lazy-srcset=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/01\/d6db1af1.jpeg?width=398&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 400w, https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/01\/d6db1af1.jpeg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 1200w\" sizes=\"auto, 400w, 1200w\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/01\/d6db1af1.jpeg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Grafana logo\" width=\"1202\" height=\"677\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Grafana is a leading observability platform for metrics visualization. It lets you build bespoke dashboards to surface meaningful insights from your <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>lication\u2019s real-time data streams.<\/p>\n<p>Grafana\u2019s a cloud-native application that\u2019s ready to be launched on popular infrastructure providers, installed on your own hardware, or deployed as a standalone container. In this guide we\u2019ll focus on the latter choice by using the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/hub.docker.com\/r\/grafana\/grafana\">official Grafana image<\/a> to start an instance that runs in Docker.<\/p>\n<h2 id=\"getting-started\"><span class=\"ez-toc-section\" id=\"Getting_Started\"><\/span>Getting Started<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The simplest Grafana container creation looks like this:<\/p>\n<pre>docker run -d --name=grafana -p 3000:3000 grafana\/grafana<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-15582\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/02\/3a0bd315.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"965\" height=\"540\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>You\u2019ll have a fresh Grafana server accessible on port 3000. Visit <code>http:\/\/localhost:3000<\/code> and login as <code>admin<\/code>\/<code>admin<\/code>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-15579\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/02\/132bba91.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1278\" height=\"646\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Now you can start adding data sources <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/getting-started\/getting-started\">and dashboards<\/a> to create your visualizations. Press the \u201cAdd your first data source\u201d button on the homepage to connect a new source; select the provider type on the following screen, then fill in the details so Grafana can access your data.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-15581\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/02\/49768922.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1278\" height=\"646\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Next return to the homepage and click \u201cCreate your first dashboard.\u201d Choose your preferred visualization type and then use the query pane to select the appropriate metrics from your data. Once you\u2019re finished, your new visualization will show on your dashboard.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-15580\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/02\/75f6366b.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1278\" height=\"646\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>This procedure demonstrates how easily you can start a disposable Grafana test instance. Running a production-ready container requires a little more thought though. Here\u2019s a more complete approach that\u2019s better equipped for long-term use.<\/p>\n<h2 id=\"selecting-an-image-variant\"><span class=\"ez-toc-section\" id=\"Selecting_an_Image_Variant\"><\/span>Selecting an Image Variant<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Grafana uses a dual-license business model. The open-source edition is published as <code>grafana\/grafana<\/code> on Docker Hub whereas Enterprise is <code>grafana\/grafana-enterprise<\/code>. The following instructions will work with both of these top-level variants.<\/p>\n<p>Multiple Grafana versions are available, each in either Alpine or Ubuntu flavors. Alpine should be preferred in most deployment situations: it\u2019s slimmer and focused on providing a Grafana-compatible environment without any superfluous extras.<\/p>\n<p>The OS is selected by appending its name after the Grafana version in an image tag:<\/p>\n<pre>grafana\/grafana:8.3.0-ubuntu<\/pre>\n<p>It\u2019s always best to pin to a specific release so you don\u2019t unintentionally receive breaking changes as new updates are published. Omitting the OS name (<code>grafana\/grafana:8.3.0<\/code>) will give you the Alpine variant of your selected version.<\/p>\n<h2 id=\"creating-a-container\"><span class=\"ez-toc-section\" id=\"Creating_a_Container\"><\/span>Creating a Container<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Grafana has relatively straightforward deployment requirements. You need to mount a Docker volume to store your persistent data and bind a host port so you can access the service. Settings can be supplied by mounting a config file into the container or injecting environment variables.<\/p>\n<pre>docker run -d --name grafana -p 9000:3000 \\&#13;\n    -v grafana-data:\/var\/lib\/grafana&#13;\n    grafana\/grafana:8.3.0<\/pre>\n<p>This example starts a new Grafana container called <code>grafana<\/code> that listens on port 9000 on your Docker host. The port is bound to 3000 in the container as this is Grafana\u2019s default listening address.<\/p>\n<p>A Docker volume called <code>grafana-data<\/code> is referenced by the <code>-v<\/code> flag. It\u2019s mounted to <code>\/var\/lib\/grafana<\/code> within the container, where Grafana stores all its generated data. The volume mount means the directory\u2019s contents will be stored outside the container, avoiding data loss when the container stops or your host restarts.<\/p>\n<h2 id=\"injecting-configuration\"><span class=\"ez-toc-section\" id=\"Injecting_Configuration\"><\/span>Injecting Configuration<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You can override Grafana\u2019s <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/administration\/configuration\">config keys<\/a> by setting environment variables when you start your container. You can change any of the keys in Grafana\u2019s INI-format config files by capitalizing the key name and prepending <code>GF_<\/code>:<\/p>\n<pre># INI file&#13;\ninstance_name = my-grafana&#13;\n&#13;\n[security]&#13;\nadmin_user = demo&#13;\nadmin_password = grafana&#13;\n&#13;\n---&#13;\n&#13;\n# Corresponding environment variables&#13;\nGF_DEFAULT_INSTANCE_NAME=my-grafana&#13;\nGF_SECURITY_ADMIN_USER=demo&#13;\nGF_SECURITY_ADMIN_PASSWORD=grafana<\/pre>\n<p>Make sure you include the implicit <code>DEFAULT<\/code> section name when you\u2019re changing the value of a top-level variable in the config file.<\/p>\n<p>Once you\u2019ve worked out which values you want to change, supply the correct environment variables with <code>-e<\/code> flags when you start your container:<\/p>\n<pre>docker run -d --name grafana -p 9000:3000 \\&#13;\n    -e GF_DEFAULT_INSTANCE_NAME=my-grafana&#13;\n    -e GF_SECURITY_ADMIN_USER=demo&#13;\n    -e GF_SECURITY_ADMIN_PASSWORD=grafana&#13;\n    -v grafana-data:\/var\/lib\/grafana&#13;\n    grafana\/grafana:8.3.0<\/pre>\n<p>Grafana supports file-based configuration too. With this mechanism the value of the target environment variable becomes the path to a file available inside the container. Grafana will obtain the setting\u2019s real value by reading the file.<\/p>\n<p>To use this approach, modify any environment variable by suffixing <code>__FILE<\/code> to its regular name:<\/p>\n<pre>docker run -d --name grafana -p 9000:3000 \\&#13;\n    -e GF_DEFAULT_INSTANCE_NAME=my-grafana&#13;\n    -e GF_SECURITY_ADMIN_USER=demo&#13;\n    -e GF_SECURITY_ADMIN_PASSWORD__FILE=\/run\/secrets\/password&#13;\n    -v grafana-data:\/var\/lib\/grafana&#13;\n    grafana\/grafana:8.3.0<\/pre>\n<p>You can add the file to the container using a bind mount (<code>-v .\/password.txt:\/run\/secrets\/password<\/code>) or a dedicated secrets management system such as <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/swarm\/secrets\">Docker Secrets<\/a>. File-based configuration provides a safer way to inject sensitive values that you\u2019d rather not expose as plain text in CI job logs and your shell\u2019s history.<\/p>\n<h2 id=\"overriding-the-config-file\"><span class=\"ez-toc-section\" id=\"Overriding_the_Config_File\"><\/span>Overriding the Config File<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You can always override Grafana\u2019s on-disk configuration file if you\u2019re changing too many values for environment variables to be convenient.<\/p>\n<p>The Docker image locates this file at <code>\/etc\/grafana\/grafana.ini<\/code>. You can mount a replacement to the expected path using a Docker bind mount:<\/p>\n<pre>docker run -d --name grafana -p 9000:3000 \\&#13;\n    -v .\/grafana.ini:\/etc\/grafana\/grafana.ini&#13;\n    -v grafana-data:\/var\/lib\/grafana&#13;\n    grafana\/grafana:8.3.0<\/pre>\n<p>Using a config file eases the injection of more complicated settings. You can <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/administration\/configuration\/#variable-expansion\">interpolate<\/a> variables to build up dynamic values. Config files also support comments that let you document your intentions to help future maintainers.<\/p>\n<h2 id=\"managing-plugins\"><span class=\"ez-toc-section\" id=\"Managing_Plugins\"><\/span>Managing Plugins<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Many Grafana installations require plugins that add extra data sources or provide pre-built dashboard panels. The Docker image includes a helper utility that lets you add plugins to a new container by setting a special environment variable.<\/p>\n<p>Here\u2019s how to add an official plugin that\u2019s listed in the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/grafana.com\/grafana\/plugins\">Grafana catalog<\/a>:<\/p>\n<pre>docker run -d --name grafana -p 9000:3000 \\&#13;\n    -e GF_INSTALL_PLUGINS=grafana-simple-json-datasource&#13;\n    -v grafana-data:\/var\/lib\/grafana&#13;\n    grafana\/grafana:8.3.0<\/pre>\n<p>The <code>GF_INSTALL_PLUGINS<\/code> variable expects a comma-separated list of plugin names to install when the container first starts. The names will be passed to the <code>grafana-cli plugins install<\/code> command. This means you can include version expressions, such as <code>grafana-simple-json-datasource 1.1.0<\/code>, and reference community plugins via their URL:<\/p>\n<pre>docker run -d --name grafana -p 9000:3000 \\&#13;\n    -e GF_INSTALL_PLUGINS=https:\/\/example.com\/grafana-plugin.zip&#13;\n    -v grafana-data:\/var\/lib\/grafana&#13;\n    grafana\/grafana:8.3.0<\/pre>\n<h2 id=\"creating-a-custom-image\"><span class=\"ez-toc-section\" id=\"Creating_a_Custom_Image\"><\/span>Creating a Custom Image<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Manually bringing up Grafana containers with configuration supplied via <code>docker run<\/code> flags is repetitive and error-prone. Building your own Docker image with your modifications included saves time and centralizes settings when multiple team members need to be able to spin up a new instance.<\/p>\n<p>You can achieve this by writing a Dockerfile that extends the official <code>grafana\/grafana<\/code> image. This gives you an opportunity to copy in a custom config file and set any extra environment variables you need.<\/p>\n<pre>FROM grafana\/grafana:8.3.0&#13;\n&#13;\n# Add plugins&#13;\nENV GF_INSTALL_PLUGINS=grafana-simple-json-datasource&#13;\n&#13;\n# Copy a config file from your working directory&#13;\nCOPY grafana.ini \/etc\/grafana\/grafana.ini<\/pre>\n<p>Use your Dockerfile to build your new Grafana image:<\/p>\n<pre>docker build -t custom-grafana:latest .<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-15583\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/02\/d7eaa4c0.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1056\" height=\"680\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Now you can start a preconfigured container instance from your image:<\/p>\n<pre>docker run -d --name grafana -p 9000:3000 \\&#13;\n    -v grafana-data:\/var\/lib\/grafana&#13;\n    custom-grafana:latest<\/pre>\n<p>This approach is particularly useful when you\u2019ve made extensive modifications to your Grafana environment. You can now reliability reproduce your configuration each time you start a container. This also helps version changes to your installation over time.<\/p>\n<p>One drawback is the need to rebuild your image when upstream Grafana updates are published. You\u2019ll have to periodically pull <code>grafana\/grafana<\/code>, <code>docker build<\/code> your image, push it to a registry, and then pull the new version on your Docker host. The final stage is to recreate your running containers so they use the updated image.<\/p>\n<h2 id=\"summary\"><span class=\"ez-toc-section\" id=\"Summary\"><\/span>Summary<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Docker simplifies Grafana installation and set up by providing an isolated environment in which you can host your observability platform. You can quickly start new Grafana instances by binding a host port, mounting a data volume, and supplying config values via environment variables. Later you can encapsulate your configuration in your own reusable image that builds on the official base.<\/p>\n<p>Once it\u2019s and up and running, a Dockerized Grafana installation works just like a regular one. You can <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/datasources\">connect data sources<\/a>, interact with the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/http_api\">HTTP API<\/a>, and configure <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/alerting\">alerts<\/a> by pointing to the host port you bound to your container. You could also assign your instance a domain name and set up HTTPS by serving it behind a reverse proxy such as Apache or Traefik.\n<\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/15573\/how-to-run-grafana-in-a-docker-container\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;How to Run Grafana In a Docker Container \u2013 CloudSavvy IT&#8221; Grafana is a leading observability platform for metrics visualization. It lets you build bespoke dashboards to surface meaningful insights from your application\u2019s real-time data streams. Grafana\u2019s a cloud-native application that\u2019s ready to be launched on popular infrastructure providers, installed on your own hardware, or&#8230;<\/p>\n","protected":false},"author":1,"featured_media":418475,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2022\/01\/d6db1af1.jpeg","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-418474","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/418474","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=418474"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/418474\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/418475"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=418474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=418474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=418474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}