Offizielles FHEM Docker Basis Image für verschiedene Plattformen

Begonnen von Loredo, 28 Juli 2018, 21:24:57

Vorheriges Thema - Nächstes Thema

no_Legend

Zitat von: Wernieman am 12 November 2021, 11:44:33
Docker hat Defaultmäßig einen DNS-Server

Sind die Container einzeln hochgezogen oder per docker-compose.yml?

Ich arbeite mit portainer.
Ob es daran liegt, ich schau mal ob sich etwas finden lässt.

Grüße Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Wernieman

Auch mit Portainer ist die Frage: Wie ziehst Du die Container hoch?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

no_Legend

Zitat von: Wernieman am 12 November 2021, 11:56:56
Auch mit Portainer ist die Frage: Wie ziehst Du die Container hoch?
Mit Portainer über deren die Gui.
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Wernieman

Portainer kann auch mit docker-compose.yml umgehen. Aber so wie ich Dich verstanden habe, hast Du die Container einzeln "eingezogen".

D.h. dann auch EINEN MySQL für ALLE Container?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

no_Legend

Zitat von: Wernieman am 12 November 2021, 12:56:50
Portainer kann auch mit docker-compose.yml umgehen. Aber so wie ich Dich verstanden habe, hast Du die Container einzeln "eingezogen".

D.h. dann auch EINEN MySQL für ALLE Container?

ich hab über die portainer gui aktuell nur einen mysql container angelegt und der ist für nextcloud gerade zuständig.
Wenn ich jetzt bei Portainer nur den hostname beim erstellen einen containers eintrage, dann nimmt das system wohl den DNS des Docker host.
Sobald ich einen DNS Ip für den Docker host nehme, wird dieser übernommen.
Aber ich kann mit den Hostnamen der Container immer noch nicht arbeiten.
Selbst ein Ping sagt bad address ping: bad address 'mysql'
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Wernieman

Wie hast Du denn den Container genannt?

Und vom Host ist der Container auch nicht per DNS erreichbar ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

no_Legend

Zitat von: Wernieman am 12 November 2021, 13:51:23
Wie hast Du denn den Container genannt?

Und vom Host ist der Container auch nicht per DNS erreichbar ...

das ist es je gerade, egal wie ich ihn nenne, da wird kein name aufgelöst.
Hat Docker da einen eigenen DNS?

Also ich hab nun einen container extra für den nextcloud-mysql, hostname in der netzwerkconfig bei portainer angegeben lautet: nextcloud-docker

Hier auch der Auszug was docker container ls ausgibt.
Aber auch die Container ID ist nicht auflösbar.
CONTAINER ID   IMAGE                                 COMMAND                  CREATED             STATUS                 PORTS                                                                                                                                                             NAMES
49543b827073   mysql:latest                          "docker-entrypoint.s..."   About an hour ago   Up About an hour       3306/tcp, 33060/tcp                                                                                                                                               fhem-mysql
514867ed430b   mysql:latest                          "docker-entrypoint.s..."   2 hours ago         Up About an hour       3306/tcp, 33060/tcp                                                                                                                                               nextcloud-mysql
2d8bd61b34f4   linuxserver/nextcloud:latest          "/init"                  3 hours ago         Up About an hour       80/tcp, 0.0.0.0:7500->443/tcp, :::7500->443/tcp                                                                                                                   nextcloud
d7ba0ff246ed   oznu/homebridge:ubuntu                "/init"                  30 hours ago        Up 30 hours                                                                                                                                                                              homebridge
e1dfd63848b3   linuxserver/unifi-controller:latest   "/init"                  2 days ago          Up 2 days                                                                                                                                                                                unifi
e00c6ec64a20   linuxserver/plex:latest               "/init"                  2 days ago          Up 2 days                                                                                                                                                                                plex
34a524951e0a   rednoah/filebot:node                  "/opt/bin/run-as-use..."   3 days ago          Up 3 days              0.0.0.0:5452->5452/tcp, :::5452->5452/tcp                                                                                                                         filebot-node
3930eeaeed65   checkmk/check-mk-raw:2.0.0-latest     "/docker-entrypoint...."   7 days ago          Up 7 days (healthy)    0.0.0.0:6556->6556/tcp, :::6556->6556/tcp, 6557/tcp, 0.0.0.0:7200->5000/tcp, :::7200->5000/tcp                                                                    checkmk
02a2531b7a0c   portainer/portainer-ce:latest         "/portainer"             2 weeks ago         Up 2 weeks             0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 9443/tcp                                                                    portainer
9c8662295647   pihole/pihole:latest                  "/s6-init"               2 weeks ago         Up 2 weeks (healthy)                                                                                                                                                                     pihole
bd8b74257b1e   whyet/awtrix2:latest                  "/entrypoint.sh"         3 weeks ago         Up 5 days              0.0.0.0:7010->7000/tcp, :::7010->7000/tcp, 0.0.0.0:7011->7001/tcp, :::7011->7001/tcp                                                                              awtrix-1-keller
146665a74929   whyet/awtrix2:latest                  "/entrypoint.sh"         3 weeks ago         Up 7 hours             0.0.0.0:7000-7001->7000-7001/tcp, :::7000-7001->7000-7001/tcp                                                                                                     awtrix-0-bad
6d3be63d25ac   containrrr/watchtower:latest          "/watchtower"            8 weeks ago         Up 2 weeks             8080/tcp                                                                                                                                                          watchtower
1376a1311e36   ecodms/ecodms:latest                  "/opt/ecodms/ecodmss..."   2 months ago        Up 2 weeks             0.0.0.0:17001-17002->17001-17002/tcp, :::17001-17002->17001-17002/tcp, 0.0.0.0:17004->8080/tcp, :::17004->8080/tcp, 0.0.0.0:17005->8180/tcp, :::17005->8180/tcp   ecodms
426127cd224c   linuxserver/tvheadend:release-4.2     "/init"                  3 months ago        Up 2 weeks                                                                                                                                                                               tvheadend
85af6ea95aaa   jlesage/jdownloader-2:latest          "/init"                  3 months ago        Up 2 weeks             0.0.0.0:3129->3129/tcp, :::3129->3129/tcp, 5900/tcp, 0.0.0.0:7300->5800/tcp, :::7300->5800/tcp                                                                    jdownloader2

IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Wernieman

Da ich immer mit docker-compose, also ohne Portainer, unterwegs bin, kann ich Dir aktuell auch nicht sagen, was das Problem ist .... hier funktioniert es. Allerdings sind auch alle Container von einem Projekt in einer docker-compose.yml ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

no_Legend

Zitat von: Wernieman am 12 November 2021, 14:59:47
Da ich immer mit docker-compose, also ohne Portainer, unterwegs bin, kann ich Dir aktuell auch nicht sagen, was das Problem ist .... hier funktioniert es. Allerdings sind auch alle Container von einem Projekt in einer docker-compose.yml ....

Hast du ein einges Netzwerk erstellt wo alle drauf laufen oder hast du die docker default bridge genommen?
Kannst du vielleicht mal folgende ausgäbe von dir posten: docker network inspect bridge
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

antonwinden

Also mit docker-compose.yml kannst auch jeden einzelnen container auch ein eigenes docker-compose.yml geben und z.B. mariadb mit dem namen den du dem container gegeben hast problemlos ansprechen vorausgesetzt du hast ein network das jedem container der es benutzen soll auch bekannt gegeben.
Bei mir funktioniert das ohne Probleme.
gruß anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

no_Legend

Zitat von: antonwinden am 13 November 2021, 09:18:10
Also mit docker-compose.yml kannst auch jeden einzelnen container auch ein eigenes docker-compose.yml geben und z.B. mariadb mit dem namen den du dem container gegeben hast problemlos ansprechen vorausgesetzt du hast ein network das jedem container der es benutzen soll auch bekannt gegeben.
Bei mir funktioniert das ohne Probleme.
gruß anton

Danke für deine Antwort.

So noch mal für dumme, hat docker auf seiner internen default bridge eine eigene DNS am laufen?
Docker kopiert ja standard mäßig die DNS Einstellungen vom Host zu den Container.
Das würde dann bedeuten dass docker Container meinen LAN internen DNS benutzt.

Was meinst du genau mit "bekannt gegeben"

Danke und Grüß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

antonwinden

sql und der container der in sql was abspeichern soll müssen sich im gleichen "network" bewegen. bei mir schaut das so aus:
version: '3'

services:

###fhem

   fhem:
     container_name: fhem
     restart: always
     privileged: true
     image: fhem/fhem:dev
     ports:
       - "8083:8083"
       - "8084:8084"
       - "8087:8087"
       - "1882:1882"
     networks:
       - datenbank
       - traefik_proxy
     volumes:
       - /mnt/DiskA/fhem:/opt/fhem
     devices:
       - /dev/bus/usb/001/002
     environment:
     # test 17-10-21
#        - NPM_PKGS: "npm@8.1.0"
        - FHEM_PERM_DIR=0777
#       - APT_PKGS="libjson-perl libmp3-info-perl libnet-upnp-perl"
#       - CPAN_PKGS="MP3::Info"
     labels:
       - "autoheal=true"
       - "traefik.enable=true"
       - "traefik.backend=fhem"
       - "traefik.frontend.rule=Host:fhem.xxxx.eu"
       - "traefik.port=8083"
       - "traefik.docker.network=traefik_proxy"
       - "traefik.frontend.headers.SSLRedirect=true"
       - "traefik.frontend.headers.STSSeconds=315360000"
       - "traefik.frontend.headers.browserXSSFilter=true"
       - "traefik.frontend.headers.contentTypeNosniff=true"
       - "traefik.frontend.headers.forceSTSHeader=true"
       - "traefik.frontend.headers.SSLHost=xxx.eu"
       - "traefik.frontend.headers.STSIncludeSubdomains=true"
       - "traefik.frontend.headers.STSPreload=true"
       - "traefik.frontend.headers.frameDeny=true"

networks:
  datenbank:
    external: true
  traefik_proxy:
    external: true

fhem speichert dann in mariadb:
version: "3.7"

services:

  mariadb:
    image: mariadb:10.5
#    image: mariadb:latest
    container_name: mariadb
    restart: always
    expose:
      - 3306
    ports:
      - 3306:3306
    networks:
       - datenbank
    volumes:
      - /mnt/DiskA/mariadb/daten:/var/lib/mysql
    environment:
      - MARIADB_ROOT_PASSWORD=29Anton06
      - TZ=Europe/Vienna
#keine Ahnung ob folgendes geht:
#    healthcheck:
#      test: ["CMD", "mysqladmin", "ping", "--silent"]

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    container_name: phpmyadmin
    restart: unless-stopped
    ports:
      - 8081:80
    networks:
       - datenbank
       - traefik_proxy
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=mariadb
    depends_on:
      - mariadb
    labels:
      - "traefik.enable=true"
      - "traefik.backend=dbadmin"
      - "traefik.frontend.rule=Host:dbadmin.xxxx.eu"
      - "traefik.port=80"
      - "traefik.docker.network=traefik_proxy"
      - "traefik.frontend.headers.SSLRedirect=true"
      - "traefik.frontend.headers.STSSeconds=315360000"
      - "traefik.frontend.headers.browserXSSFilter=true"
      - "traefik.frontend.headers.contentTypeNosniff=true"
      - "traefik.frontend.headers.forceSTSHeader=true"
      - "traefik.frontend.headers.SSLHost=xxx.eu"
      - "traefik.frontend.headers.STSIncludeSubdomains=true"
      - "traefik.frontend.headers.STSPreload=true"
      - "traefik.frontend.headers.frameDeny=true"

networks:
  datenbank:
    external: true
  traefik_proxy:
    external: true

datenbank ist dann das network für fhem und mariadb damit fhem auf mariadb zugreifen kann mit der definition:
%dbconfig= (
connection => "mysql:database=fhem;host=mysql;port=3306",
user => "fhemxxx",
password => "xxxxxx"
);

und für jeden weiteren container der auf mariadb zugreift...
gruß anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

no_Legend

Zitat von: antonwinden am 13 November 2021, 10:13:34
sql und der container der in sql was abspeichern soll müssen sich im gleichen "network" bewegen. bei mir schaut das so aus:
version: '3'

services:

###fhem

   fhem:
     container_name: fhem
     restart: always
     privileged: true
     image: fhem/fhem:dev
     ports:
       - "8083:8083"
       - "8084:8084"
       - "8087:8087"
       - "1882:1882"
     networks:
       - datenbank
       - traefik_proxy
     volumes:
       - /mnt/DiskA/fhem:/opt/fhem
     devices:
       - /dev/bus/usb/001/002
     environment:
     # test 17-10-21
#        - NPM_PKGS: "npm@8.1.0"
        - FHEM_PERM_DIR=0777
#       - APT_PKGS="libjson-perl libmp3-info-perl libnet-upnp-perl"
#       - CPAN_PKGS="MP3::Info"
     labels:
       - "autoheal=true"
       - "traefik.enable=true"
       - "traefik.backend=fhem"
       - "traefik.frontend.rule=Host:fhem.xxxx.eu"
       - "traefik.port=8083"
       - "traefik.docker.network=traefik_proxy"
       - "traefik.frontend.headers.SSLRedirect=true"
       - "traefik.frontend.headers.STSSeconds=315360000"
       - "traefik.frontend.headers.browserXSSFilter=true"
       - "traefik.frontend.headers.contentTypeNosniff=true"
       - "traefik.frontend.headers.forceSTSHeader=true"
       - "traefik.frontend.headers.SSLHost=xxx.eu"
       - "traefik.frontend.headers.STSIncludeSubdomains=true"
       - "traefik.frontend.headers.STSPreload=true"
       - "traefik.frontend.headers.frameDeny=true"

networks:
  datenbank:
    external: true
  traefik_proxy:
    external: true

fhem speichert dann in mariadb:
version: "3.7"

services:

  mariadb:
    image: mariadb:10.5
#    image: mariadb:latest
    container_name: mariadb
    restart: always
    expose:
      - 3306
    ports:
      - 3306:3306
    networks:
       - datenbank
    volumes:
      - /mnt/DiskA/mariadb/daten:/var/lib/mysql
    environment:
      - MARIADB_ROOT_PASSWORD=29Anton06
      - TZ=Europe/Vienna
#keine Ahnung ob folgendes geht:
#    healthcheck:
#      test: ["CMD", "mysqladmin", "ping", "--silent"]

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    container_name: phpmyadmin
    restart: unless-stopped
    ports:
      - 8081:80
    networks:
       - datenbank
       - traefik_proxy
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=mariadb
    depends_on:
      - mariadb
    labels:
      - "traefik.enable=true"
      - "traefik.backend=dbadmin"
      - "traefik.frontend.rule=Host:dbadmin.xxxx.eu"
      - "traefik.port=80"
      - "traefik.docker.network=traefik_proxy"
      - "traefik.frontend.headers.SSLRedirect=true"
      - "traefik.frontend.headers.STSSeconds=315360000"
      - "traefik.frontend.headers.browserXSSFilter=true"
      - "traefik.frontend.headers.contentTypeNosniff=true"
      - "traefik.frontend.headers.forceSTSHeader=true"
      - "traefik.frontend.headers.SSLHost=xxx.eu"
      - "traefik.frontend.headers.STSIncludeSubdomains=true"
      - "traefik.frontend.headers.STSPreload=true"
      - "traefik.frontend.headers.frameDeny=true"

networks:
  datenbank:
    external: true
  traefik_proxy:
    external: true

datenbank ist dann das network für fhem und mariadb damit fhem auf mariadb zugreifen kann mit der definition:
%dbconfig= (
connection => "mysql:database=fhem;host=mysql;port=3306",
user => "fhemxxx",
password => "xxxxxx"
);

und für jeden weiteren container der auf mariadb zugreift...
gruß anton

Das heist aber du hast ein eigens Netzwerk erstell welches "Datenbank" heist?
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

antonwinden

genau denn irgendwie müssen die container ja miteinander kommunizieren :-)
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Wernieman

Und es ist gut, wenn z.B. die DB nur von den Containern erreicht werden kann, welche sie erreichen können müssen. Erhöht die Sicherheit ;o)

@no_Legend
.. warum vergibst Du der DB externe Ports? Die brauchst Du nicht, wenn Du von intern kommst.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html