Om al je lokale en remote Docker containers te monitoren in Home-Assistant kun je gebruik maken van de integratie Monitor Docker. Zie de documentatie van deze integratie hoe je dit instelt.

Voorbereiden Home-Assistant

Aangezien ik Home-Assistant in een Docker container uitvoer moest ik eerst aan mijn ‘docker-compose.yml’ van mijn Home-Assistant container in de volume sectie nog ‘/var/run/docker.sock’ toevoegen. Mijn ‘docker-compose.yml’ voor Home-Assistant container ziet er nu als volgt uit:

services:
  homeassistant:
    container_name: home-assistant
    image: "ghcr.io/home-assistant/home-assistant:latest"
    volumes:
      - /home/henri/docker/HA/config:/config
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped
    privileged: true
    network_mode: host
    devices:
      - /dev/ttyUSB0:/dev/ttyUSB0

Monitor Docker integratie

Gebruik HACS om de integratie ‘Monitor Docker’ aan je Home-Assistant installatie toe te voegen. Vervolgens moet je de ‘configuration.yml’ file van je Home-Assistant installatie met een editor aanpassen. Zie de documentatie van Monitor Docker hoe je dit doet. Voor alle docker containers die op dezelfde machine als Home-Assistant draaien ziet dit er zo uit bij mij:

monitor_docker:
  - name: HA
    containers:
      - beszel-agent
      - cup
      - dozzle
      - home-assistant
      - mqtt-explorer
      - openvpn
      - portainer
    rename:
      bezel-agent: "Beszel Agent"
      cup: "Cup"
      dozzle: "Dozzle"
      home-assistant: Home Assistant
      mqtt-explorer: "MQTT Explorer"
      openvpn: "OpenVPN Server"
      portainer: "Portainer"
    monitored_conditions:
      - state

Monitoren Remote Docker Containers

Ik heb echter ook nog een aantal andere machines waarop ik docker containers draai. Die kun je ook monitoren. Je moet daarvoor wel een Docker Proxy draaien op deze machines (die zelf ook weer als docker container draait). Op deze machines heb ik een docker container toegevoegd met de volgende inhoud in de ‘docker-compose.yml’ file:

services:
  dockerproxy:
    image: tecnativa/docker-socket-proxy:latest
    container_name: dockerproxy
    restart: unless-stopped
    privileged: true
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 2375:2375
    environment:
      - BUILD=1
      - COMMIT=1
      - CONFIGS=1
      - CONTAINERS=1
      - DISTRIBUTION=1
      - EXEC=1
      - IMAGES=1
      - INFO=1
      - NETWORKS=1
      - NODES=1
      - PLUGINS=1
      - SERVICES=1
      - SESSSION=1
      - SWARM=1
      - POST=1

Start de container op met het commando ‘docker compose up -d’. Tenslotte heb ik de ‘configuration.yml’ file van mijn Home-Assistant uitgebreid met de remote dockers informatie. Zo ziet dit er als volgt uit voor mijn ‘Debian Experimenteer’ machine:

  - name: Experimenteer
    url: http://192.168.1.72:2375
    containers:
      - beszel-agent
      - cup
      - dockerproxy
      - dozzle
      - portainer
    rename:
      bezel-agent: "Beszel Agent"
      cup: "Cup"
      dockerproxy: "Docker Proxy"
      dozzle: "Dozzle"
      portainer: "Portainer"
    monitored_conditions:
      - state

Aanpassen User-Interface Home-Assistant

In je ‘Monitor Docker’ integratie vind je nu de status van alle je lokale en remote Docker containers. Ik heb nu een aparte tab-blad gemaakt om de status hiervan te tonen in mijn Home-Assistant installatie:



Conclusie

Je kunt heel eenvoudig de status van al je lokale en remote Docker containers in je netwerk monitoren in Home-Assistant. Zo zie je in 1 oogopslag hoe alles er voor staat m.b.t. je Docker containers.