Server 1: Intel N305 | 48GB RAM | 5*4TB NVME | 4x 2.5GbE
Server 2: Intel N5105 | 64GB RAM | 1TB NVME | 4x 2.5GbE
Server 3: Intel Xeon E5-2670 | 128GB RAM | 512+750GB SATA SSD | 6x10TB HDD | 6x 1GbE [Buiten gebruik]
Ik kan eens kijken of een simpele webserver in Docker werkt? Misschien dat er wat mis is in GoTrain? De data lijk ik ook niet binnen te krijgen, of dat wordt niet gelogd, maar dat is voor later een zaak. Maar misschien is poort 8080 wel bezet door iets anders, al zou ik niet weten wat. Maar dat is ook iets om uit te zoeken.
Maar mocht iemand nog verdere tips hebben....
[ Voor 54% gewijzigd door AW_Bos op 30-12-2023 00:20 ]
☀️ Goedemorgen zonneschijn! ☀️
☀️Ja, je maakt me zo gelukkig, en door jou voel ik me fijn! ☀️
1
| docker ps |
Of via een van deze commando's te kijken of er een ander proces port 8080 heeft geclaimed.
In ieder geval klinkt het draaien van een simpele webserver (nginx) en die mappen naar port 8080 een prima test om te doen.
Server 1: Intel N305 | 48GB RAM | 5*4TB NVME | 4x 2.5GbE
Server 2: Intel N5105 | 64GB RAM | 1TB NVME | 4x 2.5GbE
Server 3: Intel Xeon E5-2670 | 128GB RAM | 512+750GB SATA SSD | 6x10TB HDD | 6x 1GbE [Buiten gebruik]
☀️ Goedemorgen zonneschijn! ☀️
☀️Ja, je maakt me zo gelukkig, en door jou voel ik me fijn! ☀️
In dat geval zou het starten van de nieuwe container een foutmelding moeten geven met in mijn ogen zeer duidelijke feedback welke poort al in gebruik isthof schreef op zaterdag 30 december 2023 @ 00:25:
Je kan nog kijken of een andere container op die host port 8080 gebruikt, door de kolom 'ports' te checken bij het uitvoeren van
code:
1 docker ps
Of via een van deze commando's te kijken of er een ander proces port 8080 heeft geclaimed.
In ieder geval klinkt het draaien van een simpele webserver (nginx) en die mappen naar port 8080 een prima test om te doen.

[ Voor 6% gewijzigd door lolgast op 30-12-2023 19:50 ]
Het is getackled hoor, en ik wou dat even laten weten.....AW_Bos schreef op zaterdag 30 december 2023 @ 00:18:
@thof Ik had al eerder van ufw de status gezien dat de firewall disabled was. En verder met Curl op localhost krijg ik ook niks te zien, en enkel een 'reset bij peer'.
Ik kan eens kijken of een simpele webserver in Docker werkt? Misschien dat er wat mis is in GoTrain? De data lijk ik ook niet binnen te krijgen, of dat wordt niet gelogd, maar dat is voor later een zaak. Maar misschien is poort 8080 wel bezet door iets anders, al zou ik niet weten wat. Maar dat is ook iets om uit te zoeken.
Maar mocht iemand nog verdere tips hebben....
netstat -an gaf aan dat de poort gewoon geopend was, Ook andere applicaties in docker-containers draaien prima. En dan doet je iets te denken zetten dat die poort niet gebind werd door GoTrain.
Blijkbaar werd de config.yaml niet ingeladen, maar de benodigde parameters (waaronder poort 8080) heb ik via een reeks -e environment parameters in kunnen laden bij de docker run.
Waarom de config.yaml genegeerd wordt is mij een raadsel, en dat mag de bouwer even uitzoeken. Maar ik ben blij dat het zo in ieder geval werkt.
☀️ Goedemorgen zonneschijn! ☀️
☀️Ja, je maakt me zo gelukkig, en door jou voel ik me fijn! ☀️
Ik heb hier een nieuwe photo management docker container daaien om uit te proberen (immich), Alles werkt verder prima met het uploaden van bestanden etc, echter wil ik nu laten verwijzen naar de standaard photo folder van Synology. Dit kan ook aan de hand van deze uitleg. Echter als ik dit doe, dan krijg ik een permission denied in de log van immich naar die externe map.
Mijn vraag is nu hoe dit normaal werkt, en wat hierin aan te raden is. Zou ik een nieuwe Synology gebruiker aan moeten maken om die rechter te geven? Want uiteraard hoeven alle andere docker containers niet bij die map te kunnen. Dit geldt enkel voor immich.
Ik ben benieuwd hoe je dit normaal gesproken zou doen in docker.
Als je dit kunt lezen, dan werkt mij Signature!
Ja ik heb dat gedaan, maar het lijkt alsof de rechten niks doen vanuit SynologyWebgnome schreef op vrijdag 1 maart 2024 @ 09:08:
Je zou, als je van basis docker uit gaat, inderdaad een speciale user aan maken die je toevoeg aan de docker groep dan kan ie in docker en ook de dingen die hij zelf mag. Volgens mij..
Ik heb dus die gebruiker en die UID en GUID heb ik gebruikt in de docker compose.
Ik heb nu verwezen naar een externe map in de docker, waarvan ik weet dat iedereen er toegang tot heeft.
Dit werkt dan ook, want dan kan ik immich gewoon starten en ziet hij de externe link.
Echter als ik nu die user (in synology) de rechten ontneem van die map, en immich herstart. dan krijg ik geen foutmelding. Oftewel die gebruiker kan nog steeds in die map komen.
Het is echt heel erg gek, maar ik snap er niks van waarom de rechten vanuit synology niet goed worden overgenomen.
@Webgnome Ik heb nu bijvoorbeeld voor alles gebruikers voor die shared folder de rechten ontnomen, en nog steeds kan immich verbinden en krijg ik geen foutmelding o.i.d.
Ik gebruik de standaard groep 100 (users)
[ Voor 10% gewijzigd door Wachten... op 01-03-2024 11:30 ]
Als je dit kunt lezen, dan werkt mij Signature!
Andere containers kunnen niet zomaar bij de (laten we zeggen) foto map. Die mapping moet je namelijk expliciet maken met een bind mount of volume mapping. Als je een dergelijke mapping niet maakt, kunnen (andere) containers er niet bij. Dat is ook direct de kracht van containersWant uiteraard hoeven alle andere docker containers niet bij die map te kunnen. Dit geldt enkel voor immich.
Ik snap jouw vraag overigens wel hoor
Ik draai alles in containers en heb daar dus (denk ik) wat meer beheer over. Normaal draai ik mijn containers als niet root user. Zo ook Immich. Echter heb ik een aantal uitzonderingen. Met mijn backup container gebruik ik wel de root user. Omdat ik zeker wil weten dat die overal bij komt.Ik ben benieuwd hoe je dit normaal gesproken zou doen in docker.
Zou het niet zo kunnen zijn dat de permissies te breed staan, waardoor je dus altijd leesrechten hebt bijvoorbeeld?Wachten... schreef op vrijdag 1 maart 2024 @ 11:23:
Echter als ik nu die user (in synology) de rechten ontneem van die map, en immich herstart. dan krijg ik geen foutmelding. Oftewel die gebruiker kan nog steeds in die map komen.
Persoonlijk zou ik mij hier niet per se initieel super druk over maken. Maar eerst even lekker een setupje maken die werkt. Rechten en permissies kun je later altijd nog rechtzetten
Dank voor je heldere uitleg, en ook over de mappings.
Dus jij zegt eigenlijk dat je nooit een aparte gebruiker aan hoeft te maken voor docker?
Oftewel je kunt je admin account UID en GUID gebruiken voor alle containers, aangezien je toch bepaalde mappings aanmaakt en het hierdoor niet bij de rest kan?
Echter blijf ik dan met het probleem zitten. Want voor de duidelijkheid. Ik kan immich gewoon runnen, en ik kan ook naar een externe folder verwijzen. Dit werkt prima. Echter werkt dit niet voor de "photo" folder in Synology. Ik heb in Synology Photos ook de rechten gegeven aan deze gebruiker.
Zelfs als ik mijn admin UID gebruik, dan krijg ik een foutmelding van permission denied. Alle andere folders kan ik wel gewoon toewijzen, dan werkt immich direct.
En even voor de duidelijkheid. in de standaard "users" group in Synology heb ik alles uit staan. Ik bepaal de rechten namelijk met eigen groepen. Als ik dan voor deze specifieke gebruiker de rechten geef tot de Synology photo folder, dan krijg ik gewoon een foutmelding bij het opstarten van de container van immich. Zodra ik naar een andere algemene shared folder verwijs, dan werkt hij direct.
Naar mijn inziens heeft het dus echt specifiek met die default "photo" folder te maken, en precies die folder moet ik gebruiken, want daar staan al mijn foto`s
Als je dit kunt lezen, dan werkt mij Signature!
Ik heb nu bijvoorbeeld de compose aangepast naar de UID van de administrator, en de GUID ook (dus van 100 naar 101). Dit zou inhouden dat deze compose overal rechten tot heeft. Echter kan de container nog steeds niet opstarten vanwege een permission denied.
Ik krijg de onderstaande foutmelding
1
| Error: EACCES: permission denied, watch '/usr/src/app/external/@eaDir/SYNO@.fileindexdb' |
Als je dit kunt lezen, dan werkt mij Signature!
Heel kort door de bocht, ja dat klopt. Echter zijn er in het verleden security issues geweest waardoor je, omdat je al root was in de container, makkelijker uit de container kon breken. Vandaar dat het gebruiken van een root (of admin) gebruiker wordt afgeraden. Maar wat mij betreft moet je dit ook even in context plaatsen. Als je hiermee bezig bent is het prima om dit soort fouten of 'gevaarlijke' configuraties toe te passen. Je bent immers nog aan het leren. Ik kan je in ieder geval zeggen dat tot afgelopen jaar bij mij de permissies gewoon een bende was en zoveel mogelijk als root gebruiker draaide. Dat heeft bij mij niet tot problemen geleid.Wachten... schreef op vrijdag 1 maart 2024 @ 11:41:
Dus jij zegt eigenlijk dat je nooit een aparte gebruiker aan hoeft te maken voor docker?
Oftewel je kunt je admin account UID en GUID gebruiken voor alle containers, aangezien je toch bepaalde mappings aanmaakt en het hierdoor niet bij de rest kan?
Ik ken de ins en outs niet van Docker op Synology, maar ik lees nu al dat dat toch al wat anders isWachten... schreef op vrijdag 1 maart 2024 @ 11:51:
@alex3305 @Webgnome
Ik heb nu bijvoorbeeld de compose aangepast naar de UID van de administrator, en de GUID ook (dus van 100 naar 101). Dit zou inhouden dat deze compose overal rechten tot heeft. Echter kan de container nog steeds niet opstarten vanwege een permission denied.
Ik krijg de onderstaande foutmelding
code:
1 Error: EACCES: permission denied, watch '/usr/src/app/external/@eaDir/SYNO@.fileindexdb'
Ik weet niet hoe jouw Compose file eruit ziet, maar volgens mij zou Immich wel op moeten kunnen starten zonder toegang tot die directory. Maar volgens mij moet je die niet mappen naar /usr/src/app...
Ik heb onderstaande toegevoegd aan de: immich-server: en de immich-microservices:, zoals omschreven in de documentatie.alex3305 schreef op vrijdag 1 maart 2024 @ 12:00:toon volledige bericht
[...]
Heel kort door de bocht, ja dat klopt. Echter zijn er in het verleden security issues geweest waardoor je, omdat je al root was in de container, makkelijker uit de container kon breken. Vandaar dat het gebruiken van een root (of admin) gebruiker wordt afgeraden. Maar wat mij betreft moet je dit ook even in context plaatsen. Als je hiermee bezig bent is het prima om dit soort fouten of 'gevaarlijke' configuraties toe te passen. Je bent immers nog aan het leren. Ik kan je in ieder geval zeggen dat tot afgelopen jaar bij mij de permissies gewoon een bende was en zoveel mogelijk als root gebruiker draaide. Dat heeft bij mij niet tot problemen geleid.
[...]
Ik ken de ins en outs niet van Docker op Synology, maar ik lees nu al dat dat toch al wat anders is. Maar volgens deze reddit post moet je sowieso de @eaDir directory uitsluiten.
Ik weet niet hoe jouw Compose file eruit ziet, maar volgens mij zou Immich wel op moeten kunnen starten zonder toegang tot die directory. Maar volgens mij moet je die niet mappen naar /usr/src/app...
1
| - ${EXTERNAL_PATH}/photo:/usr/src/app/external |
Ik weet dat dit werkt, want als ik de /photo verander naar de /test, (een test folder die ik heb aangemaakt), dan werkt alles direct. Ik heb het dus enkel met de /photo map.
Dat stuk over @eaDir zou het wel eens kunnen zijn, echter hoe sluit ik dat uit in de compose, want dat kan ik nergens vinden. Ik kan dan testen of het werkt.
Echter zoals jij ook al aangeeft, is het ergens gek dat immich uberhaupt niet wilt starten met deze foutmelding.
Als je dit kunt lezen, dan werkt mij Signature!
Wat is een handige marsroute voor zoiets?
Ook al omdat je voor 10 containers een ssh poort nodig hebt.
En een of meer poorten voor een webUI.
makes it run like clockwork
Ik vind dit meer klinken alsof je op zoek bent om 10 LXC containers te starten? Daarin kun je echt een volwaardig OS draaien met zoveel services etc als je maar wilt. Want SSH in Docker draaien voelt gewoon al raar.Airw0lf schreef op dinsdag 9 april 2024 @ 14:39:
Voor een training zoek ik een manier om binnen een VPS 10 Docker containers met een Debian CLI op te starten. Binnen elke container worden vervolgens via de CLI apps geïnstalleerd en uitgevoerd. Deze apps hebben een CLI of web interface.
Wat is een handige marsroute voor zoiets?
Ook al omdat je voor 10 containers een ssh poort nodig hebt.
En een of meer poorten voor een webUI.
En LXC containers zijn diep onder water hetzelfde als Docker containers. Als in: ze gebruiken beiden dezelfde kernel technieken om de isolatie te bewerkstelligen. Alleen is de uitwerking/implementatie anders en daardoor ook de toepassing. LXC is een alternatief voor VMs, Docker is een manier om een (/één) applicatie onafhankelijk van distro (versie) eenvoudig te kunnen draaien op meerdere systemen.
En naar mijn interpretatie ben jij op zoek naar "10 VMs", dus LXC, en niet Docker.
Volgens mij kan dat prima met zoiets:
docker run -d --name ssh-0 -e SUDO_ACCESS=true PASSWORD_ACCESS=true USER_PASSWORD=blabla USER_NAME=user -p 2220:2222 -p 8000-8009:8000-8009 lscr.io/linuxserver/openssh-server:latest docker run -d --name ssh-1 -e SUDO_ACCESS=true PASSWORD_ACCESS=true USER_PASSWORD=blabla USER_NAME=user -p 2221:2222 -p 8010-8019:8010-8019 lscr.io/linuxserver/openssh-server:latest ... docker run -d --name ssh-9 -e SUDO_ACCESS=true PASSWORD_ACCESS=true USER_PASSWORD=blabla USER_NAME=user -p 2229:2222 -p 8090-8099:8090-8099 lscr.io/linuxserver/openssh-server:latest
Verder eens met @RobertMe.
Ik ben nog aan het twijfelen tussen een LXC die per deelnemer alles klaar heeft staan. Versus twee of meer Docker containers met per container een of meer apps/services.
Ander dingetje is dat het scripten van Docker containers bekende materie is. Het scripten van LXC containers is voor mij greenfield - ook al omdat er eigenlijk nauwelijks voorbeelden van te vinden zijn.
Bij elkaar bracht me dat naar de aanvliegroute over de as van Docker containers. Met het idee desnoods een Docker container per app/service.
makes it run like clockwork
Je kunt per container ook een IP adres opgeven, dan heb je ook geen portmapping enzo meer nodig. Kun je voor elke container exact dezelfde poorten gebruiken.
Ik ben de afgelopen 7 jaren (sinds ik Docker gebruik dus) nog geen enkele use-case tegengekomen voor LXC.
Door gebruik te maken van AdGuard om subdomeinen te definieren en Caddy + plugin voor web toegang wordt alles helemaal simpel tijdens het gebruik.
Toevoeging:
In de meeste containers draaien gewoon (volgens Portainer) 1-5 processen, maar ik heb er dus ook containers met meer dan 50 processen. De grote containers draaien op Alma Linux 8, terwijl mijn server op Ubuntu 22.04 LTS draait.
Container is wel zelf gemaakt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # Use Alma 8 with init system... FROM almalinux:8 RUN dnf -y upgrade RUN dnf makecache --refresh RUN dnf -y install epel-release # <<installatie andere software>> # Clean image from dnf updates & cache RUN dnf autoremove -y RUN dnf clean all # Expose Ports for the Application EXPOSE 22 80 443 888 3306 7800 |
Zoals je ziet gewoon poorten 22, 80/443 etc. geexposed omdat deze containers een eigen IP hebben.
Mocht je overigens systemd/init nodig hebben, dan zul je denk ik toch moeten terugvallen op LXC, want dat werkt niet meer lekker met Docker. Er zijn Python scripts geloof ik die dat weer volledig emuleren binnen Docker, maar die heb ik ook nog nooit nodig gehad
[ Voor 48% gewijzigd door Mars Warrior op 09-04-2024 18:23 ]
Material 3 Thema's voor HA | Swiss Army Knife custom card voor HA | AmoebeLabs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
| version: '3.5' # Note: # - Running PhotoPrism on a server with less than 4 GB of swap space or setting a memory/swap limit can cause unexpected # restarts ("crashes"), especially when the indexer temporarily needs more memory to process large files. # - If you install PhotoPrism on a public server outside your home network, please always run it behind a secure # HTTPS reverse proxy such as Traefik, Caddy, or NGINX. Your files and passwords will otherwise be transmitted # in clear text and can be intercepted by anyone, including your provider, hackers, and governments. # # Documentation : https://docs.photoprism.org/getting-started/docker-compose/ # Docker Hub URL: https://hub.docker.com/r/photoprism/photoprism/ # # DOCKER COMPOSE COMMAND REFERENCE # see https://docs.photoprism.org/getting-started/docker-compose/#command-line-interface # -------------------------------------------------------------------------- # Help | docker-compose exec photoprism photoprism help # Config | docker-compose exec photoprism photoprism config # Reset | docker-compose exec photoprism photoprism reset # Backup | docker-compose exec photoprism photoprism backup -a -i # Restore | docker-compose exec photoprism photoprism restore -a -i # Index | docker-compose exec photoprism photoprism index # Reindex | docker-compose exec photoprism photoprism index -f # Import | docker-compose exec photoprism photoprism import # # To search originals for faces without a complete rescan: # docker-compose exec photoprism photoprism faces index # # All commands may have to be prefixed with "sudo" when not running as root. # This will point the home directory placeholder ~ to /root in volume mounts. services: ## App Server (required) photoprism: ## Use photoprism/photoprism:preview for testing preview builds: image: photoprism/photoprism:latest depends_on: - mariadb ## Only enable automatic restarts once your installation is properly ## configured as it otherwise may get stuck in a restart loop, ## see https://docs.photoprism.org/getting-started/faq/#why-is-photoprism-getting-stuck-in-a-restart-loop container_name: photoprism restart: unless-stopped security_opt: - seccomp:unconfined - apparmor:unconfined ## Run as a specific, non-root user (see https://docs.docker.com/engine/reference/run/#user): user: "1000:1000" ports: - "2342:2342" # HTTP port (host:container) environment: PHOTOPRISM_ADMIN_PASSWORD: "${PHOTOPRISM_ADMIN_PASSWORD}" # PLEASE CHANGE: Your initial admin password (min 4 characters) PHOTOPRISM_SITE_URL: "${PHOTOPRISM_SITE_URL}" # Public server URL incl http:// or https:// and /path, :port is optional PHOTOPRISM_ORIGINALS_LIMIT: 5000 # File size limit for originals in MB (increase for high-res video) PHOTOPRISM_HTTP_COMPRESSION: "gzip" # Improves transfer speed and bandwidth utilization (none or gzip) PHOTOPRISM_DEBUG: "false" # Run in debug mode (shows additional log messages) PHOTOPRISM_PUBLIC: "${PHOTOPRISM_PUBLIC:-false}" # No authentication required (disables password protection) PHOTOPRISM_READONLY: "${PHOTOPRISM_READONLY:-false}" # Don't modify originals directory (reduced functionality) PHOTOPRISM_EXPERIMENTAL: "false" # Enables experimental features PHOTOPRISM_DISABLE_CHOWN: "false" # Disables storage permission updates on startup PHOTOPRISM_DISABLE_WEBDAV: "false" # Disables built-in WebDAV server PHOTOPRISM_DISABLE_SETTINGS: "false" # Disables Settings in Web UI PHOTOPRISM_DISABLE_TENSORFLOW: "false" # Disables all features depending on TensorFlow PHOTOPRISM_DISABLE_FACES: "${PHOTOPRISM_DISABLE_FACES:-false}" # Disables facial recognition PHOTOPRISM_DISABLE_CLASSIFICATION: "false" # Disables image classification PHOTOPRISM_DARKTABLE_PRESETS: "true" # Enables Darktable presets and disables concurrent RAW conversion PHOTOPRISM_DETECT_NSFW: "false" # Flag photos as private that MAY be offensive (requires TensorFlow) PHOTOPRISM_UPLOAD_NSFW: "true" # Allow uploads that MAY be offensive # PHOTOPRISM_DATABASE_DRIVER: "sqlite" # SQLite is an embedded database that doesn't require a server PHOTOPRISM_DATABASE_DRIVER: "mysql" # Use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB or MySQL database server (hostname:port) PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB or MySQL database schema name PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB or MySQL database user name PHOTOPRISM_DATABASE_PASSWORD: "${MYSQL_PASSWORD}" # MariaDB or MySQL database user password PHOTOPRISM_SITE_TITLE: "test" PHOTOPRISM_SITE_CAPTION: "In vogelvlucht" PHOTOPRISM_SITE_DESCRIPTION: "" PHOTOPRISM_SITE_AUTHOR: "" PHOTOPRISM_THUMB_FILTER: "lanczos" # resample filter, best to worst: blackman, lanczos, cubic, linear PHOTOPRISM_THUMB_UNCACHED: "true" # enables on-demand thumbnail rendering (high memory and cpu usage) PHOTOPRISM_THUMB_SIZE: 2048 # pre-rendered thumbnail size limit (default 2048, min 720, max 7680) PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680 # on-demand rendering size limit (default 7680, min 720, max 7680) ## Set a non-root user, group, or custom umask if your Docker environment doesn't support this natively: # PHOTOPRISM_UID: 1000 # PHOTOPRISM_GID: 1000 # PHOTOPRISM_UMASK: 0000 ## Enable TensorFlow AVX2 support for modern Intel CPUs (requires starting the container as root): # PHOTOPRISM_INIT: "tensorflow-amd64-avx2" ## Hardware video transcoding config (optional): PHOTOPRISM_FFMPEG_BUFFERS: "64" # FFmpeg capture buffers (default: 32) PHOTOPRISM_FFMPEG_BITRATE: "50" # FFmpeg encoding bitrate limit in Mbit/s (default: 50) # PHOTOPRISM_FFMPEG_ENCODER: "h264_v4l2m2m" # Use Video4Linux for AVC transcoding (default: libx264) # PHOTOPRISM_FFMPEG_ENCODER: "h264_qsv" # Use Intel Quick Sync Video for AVC transcoding (default: libx264) # PHOTOPRISM_INIT: "intel-graphics tensorflow-amd64-avx2" # Enable TensorFlow AVX2 & Intel Graphics support PHOTOPRISM_FFMPEG_ENCODER: "libx264" PHOTOPRISM_FFMPEG_SIZE: "3840" PHOTOPRISM_DARKTABLE_BIN: "darktable-cli" PHOTOPRISM_RESOLUTION_LIMIT: "150" # PHOTOPRISM_FFMPEG_ENCODER: "raspberry" HOME: "/photoprism" ## Hardware devices for video transcoding and machine learning (optional): # devices: # - "/dev/video11:/dev/video11" # Video4Linux (h264_v4l2m2m) # - "/dev/dri/renderD128:/dev/dri/renderD128" # Intel GPU # - "/dev/dri/card0:/dev/dri/card0" working_dir: "/photoprism" volumes: ## The *originals* folder contains your original photo and video files (- "[host folder]:/photoprism/originals"): ## - "${HOST_MEDIA_PATH}:/photoprism/originals" - "/srv/remotemount/photo/PhotoLibrary/:/photoprism/originals" ## Multiple folders can be made accessible by mounting them as subfolders of /photoprism/originals: ## - "/srv/remotemount/photo/PhotoLibrary/:/photoprism/originals/Drone" # [folder 1]:/photoprism/originals/[folder 1] # - "/mnt/Friends:/photoprism/originals/Friends" # [folder 2]:/photoprism/originals/[folder 2] ## You may mount an *import* folder from which files can be transferred to *originals* (optional): - "${HOST_MEDIA_PATH}/import:/photoprism/import" ## Cache, session, thumbnail, and sidecar files will be created in the *storage* folder (never remove): ## - "/portainer/Files/AppData/Config/PhotoPrism/storage:/photoprism/storage" - "${HOST_MEDIA_PATH}/storage:/photoprism/storage" ## Database Server (recommended) ## see https://docs.photoprism.org/getting-started/faq/#should-i-use-sqlite-mariadb-or-mysql mariadb: restart: unless-stopped image: mariadb:10.6 security_opt: - seccomp:unconfined - apparmor:unconfined command: mysqld --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120 volumes: - "/portainer/Files/AppData/Config/PhotoPrism/database:/var/lib/mysql" # never remove environment: MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}" MYSQL_DATABASE: photoprism MYSQL_USER: photoprism MYSQL_PASSWORD: "${MYSQL_PASSWORD}" ## Watchtower upgrades services automatically (optional) ## see https://docs.photoprism.org/getting-started/updates/#watchtower # # watchtower: # restart: unless-stopped # image: containrrr/watchtower # environment: # WATCHTOWER_CLEANUP: "true" # WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours # volumes: # - "/var/run/docker.sock:/var/run/docker.sock" # - "~/.docker/config.json:/config.json" # Optional, for authentication if you have a Docker Hub account |
1. Plaats de code in [code] tags, want dit is onleesbaarbrowser666 schreef op zaterdag 20 april 2024 @ 17:49:
Ik heb een raspberry pi 5 draaien met daarin een docker container met Photoprism. Ik wil graag mijn filmpjes hardwarematig laten renderen door Photoprism, maar het lukt mij niet om dit in te stellen. Toegevoegd mijn compose file. Is er iemand die advies heeft?
2. De Photoprism docs? https://docs.photoprism.a...transcoding/#raspberry-pi
RobertMe schreef op zaterdag 20 april 2024 @ 17:57:
[...]
1. Plaats de code in [code] tags, want dit is onleesbaar
2. De Photoprism docs? https://docs.photoprism.a...transcoding/#raspberry-pi
Sorry, maar de eerste 2 items die in de link genoemd staan (m.b.t. ffmpeg encoder & devices stuk) staan zelfs letterlijk in de docker-compose.yaml die je zelf postbrowser666 schreef op zaterdag 20 april 2024 @ 18:20:
De handleiding zegt hier weinig over. Niet genoeg in ieder geval om het op te lossen.
[...]
Traefik kan volgens de documentatie luisteren op meerdere IP's als entrypoint en raadt aan om, als je meerdere TCP routers wilt gebruiken, deze dan elk op een eigen port of IP te zetten.
Nu heb ik mijn docker host meerdere IP's gegeven inmiddels, maar ik weet niet precies hoe ik deze IP's dan doormap naar de container van Traefik zelf.
Sterker, is dit inderdaad de manier om dit te doen? Traefik kun je ook als stand-alone binary draaien en dan ziet hij uiteraard alle IP adressen beschikbaar op het systeem.
Nu map je door middel van de docker-compose in principe ports en als nodig ook IP adressen door, maar hoe dan verder? De container zelf is aangesloten op één bridge network en heeft derhalve op dat netwerk één ip adres.
Moet ik de traefik container dan in meerdere networks plaatsen en dan op die manier IP adressen doormappen of kan een enkele container op één docker /portainer network ook meerdere IP adressen hebben? En hoe stel ik dat dan persistent in de container in? Ik ben nog wat nieuw op het gebied van docker, dus vandaar dat ik nog wat zoekende ben naar hoe bepaalde concepten werken.
Ik zat bijvoorbeeld ook al te denken om gewoon een tweede container in de lucht te trekken en op zijn eigen network aan te sluiten, maar hoe map ik dan de specifieke network adressen naar die specifieke docker/portainer networks?
Ik ben al wat wezen grasduinen in de verschillende documentaties, maar die van Traefik is erg rudimentair en met de documentatie van docker vind ik vooral hoe je dit inricht met de docker executable zelf en niet met een docker-compose file. Aangezien ik portainer gebruik wil heel specifiek van docker-compose files gebruik maken omdat dit het werk vanuit portainer weer vereenvoudigd.
Hay 365 dias en un año y 366 occasiones para festejar (Boliviaans spreekwoord)
En als je die Docker container koppelt aan het host netwerk?ElCondor schreef op dinsdag 30 april 2024 @ 09:27:toon volledige bericht
Hello, ik heb even een duw in de juiste richting nodig. Ik post het even in dit topic omdat ik vermoed dat de oplossing meer in docker zelf dan in Traefik in te stellen moet zijn.
Traefik kan volgens de documentatie luisteren op meerdere IP's als entrypoint en raadt aan om, als je meerdere TCP routers wilt gebruiken, deze dan elk op een eigen port of IP te zetten.
Nu heb ik mijn docker host meerdere IP's gegeven inmiddels, maar ik weet niet precies hoe ik deze IP's dan doormap naar de container van Traefik zelf.
Sterker, is dit inderdaad de manier om dit te doen? Traefik kun je ook als stand-alone binary draaien en dan ziet hij uiteraard alle IP adressen beschikbaar op het systeem.
Nu map je door middel van de docker-compose in principe ports en als nodig ook IP adressen door, maar hoe dan verder? De container zelf is aangesloten op één bridge network en heeft derhalve op dat netwerk één ip adres.
Moet ik de traefik container dan in meerdere networks plaatsen en dan op die manier IP adressen doormappen of kan een enkele container op één docker /portainer network ook meerdere IP adressen hebben? En hoe stel ik dat dan persistent in de container in? Ik ben nog wat nieuw op het gebied van docker, dus vandaar dat ik nog wat zoekende ben naar hoe bepaalde concepten werken.
Ik zat bijvoorbeeld ook al te denken om gewoon een tweede container in de lucht te trekken en op zijn eigen network aan te sluiten, maar hoe map ik dan de specifieke network adressen naar die specifieke docker/portainer networks?
Ik ben al wat wezen grasduinen in de verschillende documentaties, maar die van Traefik is erg rudimentair en met de documentatie van docker vind ik vooral hoe je dit inricht met de docker executable zelf en niet met een docker-compose file. Aangezien ik portainer gebruik wil heel specifiek van docker-compose files gebruik maken omdat dit het werk vanuit portainer weer vereenvoudigd.
Waardoor die zich ook aan alle interfaces kan koppelen?
Ik ben enigszins woordblind => misschien eens een tekening/schema posten van wat je zou willen bereiken?
makes it run like clockwork
Hmmm, kijk daar komt mijn onkunde wat betreft docker en docker networking om de hoek piepen.Airw0lf schreef op dinsdag 30 april 2024 @ 10:12:
[...]
En als je die Docker container koppelt aan het host netwerk?
Waardoor die zich ook aan alle interfaces kan koppelen?
Ik ben enigszins woordblind => misschien eens een tekening/schema posten?
Ik vermoed zo maar eens dat het nu net de bedoeling is om ziets als Traefik direct aan het host network te koppelen. Ik ken echter alleen maar de bridge network instelling in portainer. Hoe stel ik daar dan in dat het host network gebruikt moet worden?
-UPDATE- Zie nu een 'host' network in portainer...

Kiek, dat had ik nodig. Daar ga ik maar eens mee klooien dan, dat scheelt een hele hoop geconfigueer.
Hay 365 dias en un año y 366 occasiones para festejar (Boliviaans spreekwoord)
Inderdaad - die moet je hebben.ElCondor schreef op dinsdag 30 april 2024 @ 10:27:
[...]
-UPDATE- Zie nu een 'host' network in portainer...Die moet ik hebben dan, neem ik aan?
Kiek, dat had ik nodig. Daar ga ik maar eens mee klooien dan, dat scheelt een hele hoop geconfigueer.
Veel plezier met het verdere "geklooi".
makes it run like clockwork
Airw0lf schreef op dinsdag 30 april 2024 @ 10:30:
[...]
Inderdaad - die moet je hebben.
Veel plezier met het verdere "geklooi".

Hay 365 dias en un año y 366 occasiones para festejar (Boliviaans spreekwoord)
Ik gebruik een Raspi 4 met daarop OMV 7 en Docker. Ik ben bezig om al mijn containers van andere Pi's op deze nieuwe opstelling neer te zetten door middel van Docker Compose files.
Op zich werkt dat uitstekend - behalve bij een reboot of een update van de container service waardoor alle containers geherstart moeten worden. Diverse containers falen dan omdat (bijvoorbeeld) de Mariadb of Mosquitto containers die in veel van de andere containers gebruikt worden nog niet (volledig) opgestart zijn.
Ik kom in Docker een dependency optie tegen maar die lijkt alleen maar effect te hebben zolang de containers in dezelfde compose file zijn gedefinieerd. Ik zou dan dus ALLE containers in 1 compose file moeten opnemen? Dat lijkt me niet de bedoeling.... Wat zijn mijn opties? Of moet ik me naast (of: in plaats van) Docker ook in Kubernetes oid gaan verdiepen? Hoe kom ik zo begrijpelijk en onderhoudbaar mogelijk aan definities voor containers waarin dependencies verwerkt zijn, die rekening houden met het al dan niet actief zijn van de container op het moment van de herstart (docker herstart alleen containers die actief waren op het moment van herstart) en niet alvast beginnen te draaien voordat de database en MQTT containers ook echt beschikbaar zijn?
Ik begrijp je probleem en vraagstelling en ik ben blij dat probleem niet te hebben. Ik zal eens kijken of ik wat voor je kan vinden.DjoeC schreef op dinsdag 14 mei 2024 @ 11:09:toon volledige bericht
Ondanks de zoekfunctie blijf ik met een vraag zitten en als niet heel erg Docker kundig kom ik ook nog niet veel verder met dat wat het www mij terug geeft.....
Ik gebruik een Raspi 4 met daarop OMV 7 en Docker. Ik ben bezig om al mijn containers van andere Pi's op deze nieuwe opstelling neer te zetten door middel van Docker Compose files.
Op zich werkt dat uitstekend - behalve bij een reboot of een update van de container service waardoor alle containers geherstart moeten worden. Diverse containers falen dan omdat (bijvoorbeeld) de Mariadb of Mosquitto containers die in veel van de andere containers gebruikt worden nog niet (volledig) opgestart zijn.
Ik kom in Docker een dependency optie tegen maar die lijkt alleen maar effect te hebben zolang de containers in dezelfde compose file zijn gedefinieerd. Ik zou dan dus ALLE containers in 1 compose file moeten opnemen? Dat lijkt me niet de bedoeling.... Wat zijn mijn opties? Of moet ik me naast (of: in plaats van) Docker ook in Kubernetes oid gaan verdiepen? Hoe kom ik zo begrijpelijk en onderhoudbaar mogelijk aan definities voor containers waarin dependencies verwerkt zijn, die rekening houden met het al dan niet actief zijn van de container op het moment van de herstart (docker herstart alleen containers die actief waren op het moment van herstart) en niet alvast beginnen te draaien voordat de database en MQTT containers ook echt beschikbaar zijn?
The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long
GoT voor Behoud der Nederlandschen Taal [GvBdNT
Het is verder ook niet ongebruikelijk om meerdere database containers te hebben voor verschillende applicaties die helemaal niets met elkaar te maken hebben.
Mocht je dan bijvoorbeeld een applicatie hebben die een bepaalde versie van MariaDB vereist terwijl een andere applicatie daar juist niet mee overweg kan, dan gaat dit ook nooit tot conflicten leiden.
Bedankt, dat was eigenlijk ook mijn idee al.Hathi schreef op dinsdag 14 mei 2024 @ 11:25:
Je hoeft niet per se alle containers in één compose file te plaatsen, maar wel alle containers die enige relatie/afhankelijkheid met elkaar hebben. Dat maakt het naar mijn idee ook wel zo overzichtelijk. Ik heb al mijn containers met betrekking tot mijn smarthome bijvoorbeeld in één compose file staan. Home Assistant, Zigbee2MQTT, Mosquitto, Influxdb en Grafana. Die hebben allemaal een vrij sterke relatie met elkaar, dus die heb ik in één compose file staan.
Het is verder ook niet ongebruikelijk om meerdere database containers te hebben voor verschillende applicaties die helemaal niets met elkaar te maken hebben.
Mocht je dan bijvoorbeeld een applicatie hebben die een bepaalde versie van MariaDB vereist terwijl een andere applicatie daar juist niet mee overweg kan, dan gaat dit ook nooit tot conflicten leiden.
Nog dit gevonden als leesvoer voor @DjoeC:
https://www.baeldung.com/...container-interdependence
https://www.reddit.com/r/...rtup_order_of_containers/
The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long
GoT voor Behoud der Nederlandschen Taal [GvBdNT
Ik heb dus per applicatie een compose-file. Bijvoorbeeld
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| version: '2.4' services: dsmrdb: image: postgres:13-alpine container_name: dsmrdb restart: always volumes: - /etc/localtime:/etc/localtime:ro - ./dsmrdb:/var/lib/postgresql/data environment: - TZ=Europe/Amsterdam - PG_TZ=Europe/Amsterdam - POSTGRES_USER=*** - POSTGRES_PASSWORD=*** - POSTGRES_DB=dsmrreader networks: - bridge cpus: 0.4 dsmr: image: ualex73/dsmr-reader-docker container_name: dsmr depends_on: - dsmrdb cap_add: - NET_ADMIN links: - dsmrdb restart: always environment: - VIRTUAL_HOST=localhost - TZ=Europe/Amsterdam volumes: - /etc/localtime:/etc/localtime:ro - ./dsmrdb_backups:/dsmr/backups ports: - 8888:80 devices: - /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AI1X3KNY-if00-port0:/dev/ttyUSB0 networks: - bridge networks: bridge: |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| version: "3.7" services: lychee: image: linuxserver/lychee container_name: lychee depends_on: - lycheedb restart: always environment: - PUID=1000 - PGID=1000 - TZ=Europe/Amsterdam - DB_HOST=lycheedb - DB_USERNAME=*** - DB_PASSWORD=*** - DB_DATABASE=lychee - DB_CONNECTION=mysql - TRUSTED_PROXIES=* - APP_URL='' volumes: - ./config:/config - ./pictures:/pictures labels: - traefik.http.routers.lychee.rule=Host("images.lolgast.nl") - traefik.http.routers.lychee.entrypoints=https - "traefik.http.routers.lychee.middlewares=hsts@file" - traefik.http.routers.lychee.tls=true - traefik.enable=true networks: - bridge - traefik lycheedb: image: mariadb container_name: lycheedb restart: always volumes: - ./db:/var/lib/mysql networks: - bridge environment: - MYSQL_ROOT_PASSWORD=*** - MYSQL_PASSWORD=*** - MYSQL_USER=*** - MYSQL_DATABASE=lychee # labels: # - com.centurylinklabs.watchtower.enable=true networks: bridge: external: false traefik: external: true |
@Webgnome Ook die oplossing heb ik ergens langs zien komen. Werkmatig begrijpelijk en beheer(s)baar, prive lijkt me dat al snel een extra onderhoudstaak te worden als er geen "team" achter zit.
Voor mijn gevoel is er niet een "simpele" oplossing voor thuisgebruik zonder ge-emmer. Misschien dan toch Kubernetes oid als orchestrator? Of neemt die de startups/shutdoens door Docker niet over? Het probleem speelt puur bij reboots en restarts van docker-ce. Eigenlijk get dat je niet een soort van Priority kunt meegeven en dat de dependency niet over de containers heen werkt.
Hmm, ook daar ga ik eens goed naar kijken. Ik zie op t eerste gezicht wel "you must make sure all paths in the files are relative to the base Compose file (i.e. the Compose file in your main-project folder)". Weet niet hoe izh dat verhoud tot het maken/hebben/gebruiken van compose files in OMV.remyz schreef op dinsdag 14 mei 2024 @ 12:05:
Kijk eens naar https://docs.docker.com/c...le-compose-files/extends/. Ik denk dat je dit kan gebruiken om te komen waar je wil zijn.
Tijd om de komende week een extra Pi op te zetten en wat dingen te gaan testen.....
1
2
3
4
5
6
7
| include: - my-compose-include.yaml #with serviceB declared services: serviceA: build: . depends_on: - serviceB #use serviceB directly as if it was declared in this Compose file |
Material 3 Thema's voor HA | Swiss Army Knife custom card voor HA | AmoebeLabs
Je hebt gelijk dat je inderdaad maar één centrale mosquitto broker moet willen hebben, maar heb je echt zo veel containers die gebruik maken van MQTT dat ze niet samen in één compose file kunnen? Zo heb ik het namelijk wel gewoon gedaan. Al vraag ik me ook af in hoeverre die echt voor een probleem zorgen als de broker even niet bereikbaar is. De meeste applicaties proberen het daarna toch gewoon even opnieuw? Bij mij is het volgens mij alleen zigbee2mqtt die moeilijk doet als de broker niet bereikbaar is bij het opstarten, maar die heb ik dan ook gewoon samen in één file staan aangezien die echt niet zonder elkaar kunnen en wel heel erg bij elkaar horen.DjoeC schreef op dinsdag 14 mei 2024 @ 12:00:
@Hathi @Freee!! @lolgast Tja, de oplossing van meerdere databases had ik ook al maar ben daar ivm resourcebeslag, de Raspi heeft maar 8GB en 2TB SSD, het is geen Intel/AMD met vrijwel onbeperkte resources. Ik wil niet zover gaan komen dat de 8GB onvoldoende wordt.. De oplossing van groeperen per doel (HA bijvoorbeeld) klinkt leuk maar bijvoorbeeld Mosquitto als MQTT broker zou nu juist 1 centrale speler in een totaal moeten kunnen zijn. Voor achtergrond taken als database en messagebroker zijn ook de interfaces nog wel te behappen, maar wat als er meerdere Grafana's gaan draaien met ieder hun eigen toegangspoort en hun eigen dashboards? Lijkt me op den duur onoverzichtelijk te worden.......
@Webgnome Ook die oplossing heb ik ergens langs zien komen. Werkmatig begrijpelijk en beheer(s)baar, prive lijkt me dat al snel een extra onderhoudstaak te worden als er geen "team" achter zit.
Voor mijn gevoel is er niet een "simpele" oplossing voor thuisgebruik zonder ge-emmer. Misschien dan toch Kubernetes oid als orchestrator? Of neemt die de startups/shutdoens door Docker niet over? Het probleem speelt puur bij reboots en restarts van docker-ce. Eigenlijk get dat je niet een soort van Priority kunt meegeven en dat de dependency niet over de containers heen werkt.
Meerdere grafana's is inderdaad wel heel overdreven, maar naar mijn idee totaal overbodig. Grafana haalt bij mij de gegevens uit mijn InfluxDB database. Daar heb ik er maar eentje van (die ook in mijn 'smarthome' compose file staat), maar mocht het nodig zijn dan zou ik gewoon een extra InfluxDB database container maken, in plaats van een extra Grafana container.
Overigens zie ik het probleem van grote compose files ook niet zo. Scheelt ook heel veel heen en weer switchen tussen files als je even wil opzoeken hoe je die andere container ook alweer geconfigureerd hebt. Stuk sneller te vinden als het gewoon in één file staat.
Tja, ik ben persoonlijk nogal verknocht aan MQ(TT) dus de door mij zelf gebrouwen applicaties gebruiken dat volop. Het is een magnifiek medium om data (asynchroon) heen of weer te pompen naar/van 1 of meer subscribers. En die hebben niet allemaal een duidelijke relatie met elkaar.Hathi schreef op dinsdag 14 mei 2024 @ 12:24:
[...]
Je hebt gelijk dat je inderdaad maar één centrale mosquitto broker moet willen hebben, maar heb je echt zo veel containers die gebruik maken van MQTT dat ze niet samen in één compose file kunnen? Zo heb ik het namelijk wel gewoon gedaan. Al vraag ik me ook af in hoeverre die echt voor een probleem zorgen als de broker even niet bereikbaar is. De meeste applicaties proberen het daarna toch gewoon even opnieuw? Bij mij is het volgens mij alleen zigbee2mqtt die moeilijk doet als de broker niet bereikbaar is bij het opstarten, maar die heb ik dan ook gewoon samen in één file staan aangezien die echt niet zonder elkaar kunnen en wel heel erg bij elkaar horen.
Meerdere grafana's is inderdaad wel heel overdreven, maar naar mijn idee totaal overbodig. Grafana haalt bij mij de gegevens uit mijn InfluxDB database. Daar heb ik er maar eentje van (die ook in mijn 'smarthome' compose file staat), maar mocht het nodig zijn dan zou ik gewoon een extra InfluxDB database container maken, in plaats van een extra Grafana container.
Overigens zie ik het probleem van grote compose files ook niet zo. Scheelt ook heel veel heen en weer switchen tussen files als je even wil opzoeken hoe je die andere container ook alweer geconfigureerd hebt. Stuk sneller te vinden als het gewoon in één file staat.
Mogelijk heb je wel gelijk en moet ik m'n hele Docker compose gebruik heroverwegen... Dat zal gaan blijken als ik alle suggesties/geboden oplossingen/oplossingsrichtingen heb doorgewerkt. Gaat alleen wat tijd kosten ;-)
Die was ik nog niet eerder tegen gekomen. Als dat betekent meerdere keren een include van (bijvoorbeeld) mariadb terwijl er toch maximaal 1 gestart wordt is dat waarschijnlijk de beste oplossing voor alle afhankelijkheden, inclusief het probleem dat @Hathi aankaartte van verschillende versies vd database. En dat is binnen OMV met variabelen (lees: versienummers als al dan niet gevulde variabelen) beheer(s)baar. Denk ik.Mars Warrior schreef op dinsdag 14 mei 2024 @ 12:19:
@DjoeC : Ik ga ervan uit dat je de nieuwe compose gebruikt, en dan wordt het doodsimpel als je de volgende documentatie leest: https://docs.docker.com/compose/compose-file/14-include/
YAML:
1 2 3 4 5 6 7 include: - my-compose-include.yaml #with serviceB declared services: serviceA: build: . depends_on: - serviceB #use serviceB directly as if it was declared in this Compose file
Meer uitzoek en testwerk.
Overigens zou ik simpelweg voor elke Compose waar nodig een database laten lopen. Als ik bij mij kijk dan gebruiken mijn Postgres databases veelal minder dan 100MB geheugen.
Absoluut dit. Software zou niet zomaar veel RAM moeten gebruiken omdat die het leuk vindt terwijl het er niet is. Een database zou maar een geringe hoeveelheid geheugen moeten gebruiken. Maar als er veel RAM beschikbaar is kan die wel meer gebruiken.alex3305 schreef op dinsdag 14 mei 2024 @ 13:18:
Overigens zou ik simpelweg voor elke Compose waar nodig een database laten lopen. Als ik bij mij kijk dan gebruiken mijn Postgres databases veelal minder dan 100MB geheugen.
Heb zelf een mini PCtje met 8GB RAM en Intel N5105 CPU. Draaien meerdere "stacks" op (waaronder Home Assistant met PostgreSQL + InfluxDB, Paperless-NGX met een eigen DB, Gitea met een eigen DB) en dat gaat gewoon prima. Geheugengebruik ligt rond de 7GB (dus ~1GB available). Maar dat is wel met ZFS als filesystem waarbij de "ARC" (cache) al iets van 2 of 3GB opslokt.
En hetzelfde op mijn minimale VPS bij Contabo (goedkoopste variant met 4 "cores" en 8GB RAM, waarschijnlijk op een overprovisioned fysieke server). Ding draaien minimaal 6 database servers op en ook daar nog wat geheugen "available" en meerdere GBs semi beschikbaar maar nu in gebruik door ZFS ARC.
Wat overigens wel aan te raden is is om in ieder geval te pogen dezelfde versies te gebruiken, en daarmee dan ook het identieke image (digest). Dan staan de libraries / executables ook maar 1x op het systeem (HDD) en worden ze ook maar 1x in het RAM ingeladen. Maar dat heb ik zelf ook niet specifiek en gaat ook zonder dus prima.
Ik heb mijn compose files ook gescheiden (backend, management, smarthome, etc), maar ik heb in de backend compose mijn database containers (postgres, mariadb, influx), die door de andere stacks worden gebruikt.
Een aantal dingen die "hergebruikt" worden staan in een shared.yml compose file.
alex@LeeTower:~# docker stats --no-stream | grep -i postgres CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 422323c6a703 outline-postgres 0.00% 43.27MiB / 31.17GiB 0.14% 59MB / 94MB 99.6MB / 41.7MB 8 2f9408dc1520 paperless-postgres 0.00% 50.52MiB / 31.17GiB 0.16% 29MB / 304MB 290MB / 178MB 8 b788c011a510 immich-postgres 0.00% 237.9MiB / 31.17GiB 0.75% 402MB / 224MB 2.55GB / 4.36GB 23 alex@LeeTower:~# free -m total used free shared buff/cache available Mem: 31914 13702 991 4889 17220 12931 Swap: 0 0 0
en dit zijn ook geen lichte applicaties. Toegegeven, Home Assistant en Spotweb gebruiken wat meer memory met 1GB en 500MB respectievelijk. Maar ik heb geen enkele applicatie, database of stack begrensd in resources. Want dat is ook nog een optie met Docker. Het enige wat ik doe is CPU affiniteit instellen om mijn stroomverbruik te beperken. En een ander voorbeeld, ik heb voor elke stack een aparte Watchtower instantie draaien waar ik dat wil. Tja dat zijn dan 10 applicaties met 10MB geheugen. Daar maak ik me dan echt niet druk over.
Ik heb jaren lang mijn applicaties op aardappels gedraaid en 8GB geheugen is echt prima te managen. Home Assistant en wat neven containers op een Pi3B met 1GB RAM was pas echt krap
Ik snap het, maar dit voelt toch niet zo lekker. Vooral omdat dan de stacks niet meer los te deployen zijn zonder de shared.yml compose. En voor een message broker (Mosquitto, RabbitMQ) snap ik dat ook nog wel, maar voor zoiets als een database voelt dat toch niet zoBen.Hahlen schreef op dinsdag 14 mei 2024 @ 14:12:
[...]
Een aantal dingen die "hergebruikt" worden staan in een shared.yml compose file.

Mijn shared.yaml heeft dit soort dingen er in staan:alex3305 schreef op dinsdag 14 mei 2024 @ 14:31:
[...]
Ik snap het, maar dit voelt toch niet zo lekker. Vooral omdat dan de stacks niet meer los te deployen zijn zonder de shared.yml compose. En voor een message broker (Mosquitto, RabbitMQ) snap ik dat ook nog wel, maar voor zoiets als een database voelt dat toch niet zo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| services: base: domainname: home restart: always volumes: - ${CONF_DIR}/shared:/shared main-shared: extends: service: base environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} common-shared: extends: service: main-shared labels: ## Traefik - "traefik.enable=true" - "traefik.docker.network=lan_net" |
Dat kan ik prima in de losse compose-files zetten, maar ik hou niet van duplicatie
1
2
3
4
5
| CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS aa3c72f996ce homeassistant 0.88% 573.2MiB / 7.628GiB 7.34% 5.12MB / 1.64MB 350MB / 54.3MB 40 0d3167ea2585 mariadb 0.22% 283.3MiB / 7.628GiB 3.63% 5.74MB / 13.7MB 277MB / 3.3MB 29 4f1a61ec5be9 grafana 0.04% 249.8MiB / 7.628GiB 3.20% 52.6kB / 10.1kB 221MB / 565kB 18 b84b941633f3 influxdb 0.64% 2.524GiB / 7.628GiB 33.09% 422kB / 45.8kB 2.3GB / 922kB 17 |
Vooral influxdb valt op.... Dit is wel een kwartier na een complete reboot omdat de stats geen stats weergaven ;-) en er eerst
1
| cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1 |
Ik neem alle suggesties mee en ga deze week/komende weken wat experimenteren. Voorlopig probeer ik vast te houden aan "zoveel mogelijk" 1 instantie van de database/grafana/etc containers.
Omdat het totale CPU verbruik nog laag is was ik van plan om nog veel meer containers toe te voegen binnen die 8GB. Alleen swappen e.d. is voor mij voorlopig not-done vanwege I/O delays en wear-and-tear op de SSD. O ja, de dagelijkse logging staat op RAM disk (256MB van de 8GB).
[ Voor 11% gewijzigd door DjoeC op 14-05-2024 15:02 ]
alex@LeeTower:~# docker stats --no-stream | grep -i influx e1c28845c9cb homeassistant_influxdb 0.06% 155.5MiB / 31.17GiB 0.49% 1.38GB / 27.2MB 46.6GB / 15.9GB 11
Ik gebruik de volgende Influx configuratie in Compose:
1
2
3
4
5
6
7
8
9
| services: influxdb: container_name: homeassistant_influxdb image: influxdb:1.8 environment: INFLUXDB_DATA_WAL_FSYNC_DELAY: 60s INFLUXDB_MONITOR_STORE_ENABLED: false INFLUXDB_DATA_QUERY_LOG_ENABLED: false INFLUXDB_HTTP_LOG_ENABLED: false |
Hiernaast kun je ook de container nog limiteren op geheugenverbruik, bijvoorbeeld:
1
2
3
4
5
6
7
8
| services: influxdb: container_name: homeassistant_influxdb image: influxdb:1.8 deploy: resources: limits: memory: 1G |
Daarnaast heb je InfluxDB eigenlijk niet meer nodig met de huidige Home Assistant long term storage.
1
2
| $ docker stats --no-stream | grep "influx" 41e3c34ec982 met-influxdb 0.06% 229.4MiB / 30.89GiB 0.73% 5.17GB / 4.95GB 14GB / 66.8GB 63 |
Material 3 Thema's voor HA | Swiss Army Knife custom card voor HA | AmoebeLabs
Ik heb tijden een volledige *arr stack gedraaid met SabNZBd, Immich en AdGuard op 8GB geheugen met ruimte over. Dus ik snap het eigenlijk niet. Dat was echt totaal geen probleem. Idem voor mijn andere node met Home Assistant, Plex en nog wat andere zaken, ook met 8GB.DjoeC schreef op dinsdag 14 mei 2024 @ 15:00:
Omdat het totale CPU verbruik nog laag is was ik van plan om nog veel meer containers toe te voegen binnen die 8GB.
Weet je zeker dat je geheugen tekort komt en niet dat het gedeeld of gebufferd is? Linux werkt in dat opzicht toch anders dan Windows.
Ik had swap uitstaan op de node met 8GB RAM. Gaf in mijn geval nooit problemen. Wear en tear op de SSD hoef je je echt helemaal geen zorgen over te maken. Mijn Samsung 980 1TB systeem disk heeft na 1 jaar gebruik (power on hours) 80TB gebruikt. Dat is tevens de disk waar ik mijn data op binnenhark. Volgens SMART is er nu 13% van de schijf gebruikt en volgens Samsung is de TBW 600TB. Als ik dus in hetzelfde tempo doorga kan ik nog minimaal 7,5 jaar met de disk doen. Maar dan denk ik dat mijn 1TB al afgeschreven isAlleen swappen e.d. is voor mij voorlopig not-done vanwege I/O delays en wear-and-tear op de SSD. O ja, de dagelijkse logging staat op RAM disk (256MB van de 8GB).
Overigens heb je het in andere posts over Kube. Als er iets veel geheugen gebruikt zonder dat er iets is, is het Kubernetes wel
DSMR reader is dan zo te zien ook niet heel erg zuinig, 5-10 procent CPU gebruik. En dan is het ook nog een DSMR4 meter. Dus elke 5 of 10 seconden (weet ik even niet meer) dat die data stuurt. Bij DSMR5 is dat elke seconde. Meter wordt uitgelezen door een custom ESPtje die het raw via een socket doorgeeft. Aan de DSMR Reader kant dus een "ser2net" variant.
Momenteel kom ik nog geen geheugen tekort, zit op 50%. Maar als iemand die al jaren (onder andere) aan allerlei performance en capaciteits issues heeft gewerkt en wetende wat ik er allemaal nog bij wil zetten: Ik voorkom die uitdagingen liever....alex3305 schreef op dinsdag 14 mei 2024 @ 15:18:toon volledige bericht
Na de edit van @DjoeC:
[...]
Ik heb tijden een volledige *arr stack gedraaid met SabNZBd, Immich en AdGuard op 8GB geheugen met ruimte over. Dus ik snap het eigenlijk niet. Dat was echt totaal geen probleem. Idem voor mijn andere node met Home Assistant, Plex en nog wat andere zaken, ook met 8GB.
Weet je zeker dat je geheugen tekort komt en niet dat het gedeeld of gebufferd is? Linux werkt in dat opzicht toch anders dan Windows.
[...]
Ik had swap uitstaan op de node met 8GB RAM. Gaf in mijn geval nooit problemen. Wear en tear op de SSD hoef je je echt helemaal geen zorgen over te maken. Mijn Samsung 980 1TB systeem disk heeft na 1 jaar gebruik (power on hours) 80TB gebruikt. Dat is tevens de disk waar ik mijn data op binnenhark. Volgens SMART is er nu 13% van de schijf gebruikt en volgens Samsung is de TBW 600TB. Als ik dus in hetzelfde tempo doorga kan ik nog minimaal 7,5 jaar met de disk doen. Maar dan denk ik dat mijn 1TB al afgeschreven is.
Overigens heb je het in andere posts over Kube. Als er iets veel geheugen gebruikt zonder dat er iets is, is het Kubernetes wel. Ik zou je aanraden om met Prometheus en/of cAdvisor eens te gaan kijken waar het verbruik vandaan komt. Want met 8GB moet wat jij wilt volgens mij makkelijk kunnen.
Qua disk: Ik heb een T7, smartctl geeft niet alles weer, daarvoor moet ik de SSD aan de Windows PC hangen (nu effe niet), TBW niet gespecificeerd, zal wel ergens rond 1000TBW liggen, momenteel zit ik op 12TB written en 56TB read, ook daar: Liever voorkom ik excessief gebruik door er vanaf moment 0 "slim" mee om te gaan.
Kubernetes: nog geen ervaring mee al begreep ik dat je er containers mee kunt stoppen/starten/besturen (regisseren), vandaar mijn opmerking. Maar als t niet hoeft: Heb al weer veel dingen om me in te verdiepen.
Ik zou Kubernetes lekker links laten liggen als je je zorgen maakt over CPU, RAM en SSD gebruikDjoeC schreef op dinsdag 14 mei 2024 @ 16:56:
[...]
Kubernetes: nog geen ervaring mee al begreep ik dat je er containers mee kunt stoppen/starten/besturen (regisseren), vandaar mijn opmerking. Maar als t niet hoeft: Heb al weer veel dingen om me in te verdiepen.

En dat nog even los van de complexiteit tov een docker compose file...
Material 3 Thema's voor HA | Swiss Army Knife custom card voor HA | AmoebeLabs
Ik heb de populariteit van Docker nooit echt begrepen. Het is 10 jaar later uitgebracht als Jails en was op veel gebieden inferieur aan Jails. Hoewel we nu 2024 zijn lijkt Jails nog altijd beter te zijn in veel situaties:
https://it-notes.dragas.n...to-a-new-freebsd-machine/
https://medium.com/thecon...s-in-freebsd-e2a3ef86d09c
Of als ik Zones van Illumos/Solaris technologisch vergelijk met Docker kom ik al snel tot de conclusie dat Docker veel nuttige basisfuncties niet eens heeft.
Waarom is het dan zo populair geworden als Jails en Zones zoveel jaar eerder grotendeels dezelfde taken al beter deden?
'Even today, trying to run a 5 year old Docker "image" will probably no longer work, which I think is quite amusing.'
'The word "container" doesn't come from Docker, it comes from Solaris and basically means holistic sandboxing.'
'There is no containerization in Docker. It's cgroups and namespaces, that's it. Security is not even a design constraint for docker. Docker should be called CFEngine++.'
'What I found with Zones after using them for a number of years was that I got containers/virtual machine in one nice package. I actually had to "install" a zone which put a mini OS there with ethernet ports available on each zone and console ports for each zone. I could login to a zone and not even know it was just a piece of a machine however, under the hood, it would lay over the existing ethernet drivers, use the existing TCP stack, and use the same shared libraries that the other zones used in a single shared instance. It was literally the best of both worlds. Zones, ZFS and Dtrace just are not quite on Linux yet.'
'Docker was not designed for security, it has a lot of security issues consequently, unlike Illumos.'
'SmartOS/Illumos zones are actually a later incarnation of BSD Jails that was based on the idea of BSD Jails, specifically instead of just having a kernel shim it actually has entries in the kernel process table itself, that allows processes to have unique networking, unique I/O, unique everything, with the kernel mediating between. It is significantly more advanced and capable.'
Lotus Notes was ook veel eerder een NoSql database voordat zaken als mongo etc een hit werden. Hoe lang iets op de markt is zegt niks over de bruikbaarheid/populariteit.FateTrap schreef op woensdag 15 mei 2024 @ 02:12:
Je kunt meestal ook gewoon FreeBSD Jails gebruiken in plaats van Docker. Op gebied van beveiliging zit er heel veel malware in de meerderheid van de Docker images. En Docker zelfs is ook minder goed beveiligd dan Jails.
Ik heb de populariteit van Docker nooit echt begrepen. Het is 10 jaar later uitgebracht als Jails en was op veel gebieden inferieur aan Jails. Hoewel we nu 2024 zijn lijkt Jails nog altijd beter te zijn in veel situaties:
https://it-notes.dragas.n...to-a-new-freebsd-machine/
https://medium.com/thecon...s-in-freebsd-e2a3ef86d09c
Of als ik Zones van Illumos/Solaris technologisch vergelijk met Docker kom ik al snel tot de conclusie dat Docker veel nuttige basisfuncties niet eens heeft.
Waarom is het dan zo populair geworden als Jails en Zones zoveel jaar eerder grotendeels dezelfde taken al beter deden?
Als ik je post doorlees dan voelt het een beetje als een ' ja maar jullie...' Daar gaat dit topic niet over toch?
Dit slaat nergens op en is 100% onwaar. Het enige wat ik hierover kan vinden is dit onderzoek van 2 jaar geleden. Waar zo'n 1600 images van de onderzochte 250.000, zonder officiële images (!), verdacht waren. Dat is minder dan 1% van de onderzochte images. Met de populariteit van Docker is malware ook enigszins te verwachten.FateTrap schreef op woensdag 15 mei 2024 @ 02:12:
Op gebied van beveiliging zit er heel veel malware in de meerderheid van de Docker images.
Wat jij denk ik bedoelt te zeggen is dat Docker images veelal beveiligingsproblemen hebben. Bijvoorbeeld door oude software te gebruiken met daarin CVE's. Dat is namelijk wel zo. Maar in de praktijk is dit veelal probleem omdat Docker containers veelal afgeschermd worden door een aparte buitenlaag. En daarnaast staan veel van mijn applicaties, bijvoorbeeld databases, niet ontsloten naar de buitenwereld. Het is dus 'onmogelijk' om daar zomaar bij te komen.
Toverwoord probably. Want ik weet zeker dat images van 5 jaar geleden nog wel werken. Die gebruik(te) ik namelijk weleens.FateTrap schreef op woensdag 15 mei 2024 @ 03:03:
'Even today, trying to run a 5 year old Docker "image" will probably no longer work, which I think is quite amusing.'
En Jail komt ook niet van BSD, maar van gevangenis'The word "container" doesn't come from Docker, it comes from Solaris and basically means holistic sandboxing.'

Het mag dan misschien technisch beter zijn, Docker is simpelweg heel eenvoudig in gebruik. Daarnaast is het onmogelijk om FreeBSD Jails of Solaris Zones op Linux te draaien. Aangezien ik geen FreeBSD systemen heb, kan ik dus geen Jails gebruiken.Je kunt meestal ook gewoon FreeBSD Jails gebruiken in plaats van Docker. [...]
Ik heb de populariteit van Docker nooit echt begrepen. Het is 10 jaar later uitgebracht als Jails Docker (FTFY) en was op veel gebieden inferieur aan Jails. [...]
Waarom is het dan zo populair geworden als Jails en Zones zoveel jaar eerder grotendeels dezelfde taken al beter deden?
Maar buiten dit alles snap ik niet zo goed wat je hier nu komt verkondigen... Dat er Jails en Docker is, is toch prima? Het is geen pis verwedstrijd. Dat Audi, BMW en Mercedes naast elkaar bestaan is toch ook prima
Docker heeft het (wellicht zwakke) product heel erg sterk vermarkt en dat is enorm knap en daar pluk ik vandaag de dag nog steeds de vruchten van
'Slaat nergens' op is niet echt hoe ik het zou verwoorden. Eerder het omgekeerde. Het Docker ecosysteem is sowieso meer dan 1 % malware.alex3305 schreef op woensdag 15 mei 2024 @ 10:12:
Ik hap wel.
[...]
Dit slaat nergens op en is 100% onwaar. Het enige wat ik hierover kan vinden is dit onderzoek van 2 jaar geleden. Waar zo'n 1600 images van de onderzochte 250.000, zonder officiële images (!), verdacht waren. Dat is minder dan 1% van de onderzochte images. Met de populariteit van Docker is malware ook enigszins te verwachten.
Millions of Malicious Containers Found on Docker Hub
https://www.infosecurity-...-containers-found-docker/
According to JFrog, approximately 25% of these repositories lack useful functionality and serve instead as vehicles for spam, pirated content promotion and malware dissemination.
Docker Images: Why are Many Cyber Attacks Originating Here?
https://blog.checkpoint.c...attacks-originating-here/
Three million Docker Hub repositories are being used to spread malware
https://www.itpro.com/sec...ng-used-to-spread-malware
Misconfigured container services are a security risk
https://www.computerweekl...vices-are-a-security-risk
“Seemingly simple misconfigurations within cloud services can lead to severe impacts on organisations,” says the blog post, giving the example of the theft of keys and tokens for about 190,000 Docker accounts in April 2019, when an attacker was able to exploit weak security configurations of key and token storage within a cloud environment.
Root Account Misconfiguration Potentially Exposes 19% of the Top 1,000 Containers in Docker Hub
https://www.trendmicro.co...-containers-in-docker-hub
In de VS gebruikt men voor het evalueren van academische studenten vaak een lettersysteem, van A tot en met F. Wat ik met mijn oorspronkelijke comment probeer te zeggen is dat Docker op gebied van beveiliging/prestaties/mogelijkheden heel frequent en objectief gezien onder deze F beoordelingsschaal valt.
Verder zie je ook de populariteit van Python en C++, maar voor een eindgebruiker biedt dit geen voordeel tov een app die in Zig/Rust/C geprogrammeerd is.
De Python apps gaan gewoon vele malen trager draaien en bovendien veel bugs hebben.
En hetzelfde geldt voor C++ apps die door de objectgeoriënteerde overhead zo goed als altijd trager zijn dan C apps en ook meer bugs hebben dan C apps.
Hetzelfde met JavaScript dat vaak veel trager en onveiliger is dan WebAssembly. En meestal ook volledig overbodig is voor een website en een populaire bron van exploits voor eingebruikers omdat het ontwikkeld was als een lichtgewicht scriptingtaal en helemaal niet bedoeld was om de standaard voor het web te worden.
Verder zie ik ook de populariteit van Ubuntu, maar voor welk type taak is Ubuntu het snelst en/of het veiligst en/of het makkelijkst te beheren? Antwoord: zo goed als helemaal niks.
Om mijn comment meer algemeen te plaatsten, wat is nog het nut van universitaire diploma's en opleiding als de meeste computer ingenieurs objectief gezien op gebied geleverde resultaten in (procentueel gezien) grote aantallen in deze F categorie vallen? Ik denk dat Docker niet populair is geworden om goed gefundeerde redenen maar eerder een random bandwagon effect was. Het is toch redelijk voor de hand liggend dat dit enkel kan gebeuren als men op school geen basic kritische denkvaardigheden heeft aangeleerd en men in grote aantallen sterk afgestompt geweest is. (een verdomming in plaats van een verslimming)
Als dit de observaties uit de realtiteit zijn dan denk ik dat het ook verplicht dient te worden dat 'hoogopgeleiden' voortaan hernoemd worden met een term die deze opleiding beter omschrijft. 'laagopgeleiden' of 'leeglopers'
Ik zou graag willen zien dat dit topic over ervaringen met Docker blijft gaan. Het is een ieders recht om wat van de achterliggende techniek, kwaliteit of evt. noodzaak te vinden maar daar is dit niet het juiste topic voor. Dit topic gaat over mensen die docker gebruiken en daar ervaringen over willen uitwisselen.
Ik snap dat de grens soms wat grijs is. Maar probeer een beetje on-topic te blijven.
[ Voor 10% gewijzigd door Question Mark op 14-06-2024 11:24 ]
Goed verhaal, lekker kort ook.FateTrap schreef op woensdag 15 mei 2024 @ 13:48:toon volledige bericht
[...]
'Slaat nergens' op is niet echt hoe ik het zou verwoorden. Eerder het omgekeerde. Het Docker ecosysteem is sowieso meer dan 1 % malware.
Millions of Malicious Containers Found on Docker Hub
https://www.infosecurity-...-containers-found-docker/
According to JFrog, approximately 25% of these repositories lack useful functionality and serve instead as vehicles for spam, pirated content promotion and malware dissemination.
Docker Images: Why are Many Cyber Attacks Originating Here?
https://blog.checkpoint.c...attacks-originating-here/
Three million Docker Hub repositories are being used to spread malware
https://www.itpro.com/sec...ng-used-to-spread-malware
Misconfigured container services are a security risk
https://www.computerweekl...vices-are-a-security-risk
“Seemingly simple misconfigurations within cloud services can lead to severe impacts on organisations,” says the blog post, giving the example of the theft of keys and tokens for about 190,000 Docker accounts in April 2019, when an attacker was able to exploit weak security configurations of key and token storage within a cloud environment.
Root Account Misconfiguration Potentially Exposes 19% of the Top 1,000 Containers in Docker Hub
https://www.trendmicro.co...-containers-in-docker-hub
In de VS gebruikt men voor het evalueren van academische studenten vaak een lettersysteem, van A tot en met F. Wat ik met mijn oorspronkelijke comment probeer te zeggen is dat Docker op gebied van beveiliging/prestaties/mogelijkheden heel frequent en objectief gezien onder deze F beoordelingsschaal valt.
Verder zie je ook de populariteit van Python en C++, maar voor een eindgebruiker biedt dit geen voordeel tov een app die in Zig/Rust/C geprogrammeerd is.
De Python apps gaan gewoon vele malen trager draaien en bovendien veel bugs hebben.
En hetzelfde geldt voor C++ apps die door de objectgeoriënteerde overhead zo goed als altijd trager zijn dan C apps en ook meer bugs hebben dan C apps.
Hetzelfde met JavaScript dat vaak veel trager en onveiliger is dan WebAssembly. En meestal ook volledig overbodig is voor een website en een populaire bron van exploits voor eingebruikers omdat het ontwikkeld was als een lichtgewicht scriptingtaal en helemaal niet bedoeld was om de standaard voor het web te worden.
Verder zie ik ook de populariteit van Ubuntu, maar voor welk type taak is Ubuntu het snelst en/of het veiligst en/of het makkelijkst te beheren? Antwoord: zo goed als helemaal niks.
Om mijn comment meer algemeen te plaatsten, wat is nog het nut van universitaire diploma's en opleiding als de meeste computer ingenieurs objectief gezien op gebied geleverde resultaten in (procentueel gezien) grote aantallen in deze F categorie vallen? Ik denk dat Docker niet populair is geworden om goed gefundeerde redenen maar eerder een random bandwagon effect was. Het is toch redelijk voor de hand liggend dat dit enkel kan gebeuren als men op school geen basic kritische denkvaardigheden heeft aangeleerd en men in grote aantallen sterk afgestompt geweest is. (een verdomming in plaats van een verslimming)
Als dit de observaties uit de realtiteit zijn dan denk ik dat het ook verplicht dient te worden dat 'hoogopgeleiden' voortaan hernoemd worden met een term die deze opleiding beter omschrijft. 'laagopgeleiden' of 'leeglopers'
Gelukkig is Docker in Go geschreven dan, als C++ en Python zo slecht zijn. Of wat was je punt nu?
Oftewel: Wat kom je doen? Heb je een inhoudelijke vraag?
Als je jezelf de vraag moet stellen waarom FreeBSD Jails niet zo populair is als Docker zit je als FreeBSD user heel erg veilig in je FreeBSD-bubbel. Lekker daar blijven
- Er is geen beste programmeertaal.
- Er is geen beste OS.
- Er is geen beste container-omgeving.
Docker is ook geen wedstrijd. Docker is eenvoudig in gebruik en portable. Dat maakt het enorm krachtig. Als je dat niet ziet ben je wat mij betreft enorm kortzichtig. Sterker nog, niet alle gereedschappen naar waarde kunnen schatten en gebruiken is wat mij betreft laagopgeleid. Want ik vind het nogal wat @FateTrap, hier alle Docker gebruikers als laagopgeleiden of leeglopers neerzetten
En dan nog even over malware in Docker. Er zal vast malware zijn. Al is het 10%, percentages boeien me vrij weinig. Ook hierbij geldt weer, je kunt alles wel misbruiken. Messen, auto's en ook computersystemen. Maar je gaat er compleet aan voorbij dat populariteit tevens zorgt voor meer misbruik. Je hebt ook meer Windows malware dan Linux malware bijvoorbeeld. Dus de cijfers die je noemt zeggen niets, want ze staan nergens tot in verhouding.
Yep, compose (ik meen) 3.8 in docker 26.1.3. Ik heb nog steeds als uitgangspunt: 1 actieve mariadb instantie en dan gaat include met depends_on niet werkenMars Warrior schreef op dinsdag 14 mei 2024 @ 12:19:
@DjoeC : Ik ga ervan uit dat je de nieuwe compose gebruikt, en dan wordt het doodsimpel als je de volgende documentatie leest: https://docs.docker.com/compose/compose-file/14-include/
YAML:
1 2 3 4 5 6 7 include: - my-compose-include.yaml #with serviceB declared services: serviceA: build: . depends_on: - serviceB #use serviceB directly as if it was declared in this Compose file
Met include:
Zonder include maar met depends_on en container "database" actief:Container database Creating
Error response from daemon: Conflict. The container name "/database" is already in use by container "2d434ede87e1f43d8fe2cc13bb37f36863ea39dcb948760c974cfc8479784134". You have to remove (or rename) that container to be able to reuse that name.
Losse database container gestopt, dan compose uitvoeren met opbrengen beide containers (en wachten op de healthcheck) werkt wel maar ja, dat gaat dus niet met maar 1 dabase instantie over meerdere compose files. Jammer want dit leek me de meest veelbelovende optie.service "applicatie" depends on undefined service "database": invalid compose project
Tijd voor de andere suggesties...
Maar, hoe zorg jij ervoor dat ze volgtijdelijk correct worden opgestart? Of is dat "op hoop van zegen" na een reboot/docker update?Ben.Hahlen schreef op dinsdag 14 mei 2024 @ 14:12:
Dissenting voice!
Ik heb mijn compose files ook gescheiden (backend, management, smarthome, etc), maar ik heb in de backend compose mijn database containers (postgres, mariadb, influx), die door de andere stacks worden gebruikt.
Een aantal dingen die "hergebruikt" worden staan in een shared.yml compose file.
Fatsoenlijke software zou dat gewoon moeten handlen? Dus error als DB niet beschikbaar is en op moment dat DB weer beschikbaar is weer verbinden.DjoeC schreef op vrijdag 17 mei 2024 @ 14:07:
[...]
Maar, hoe zorg jij ervoor dat ze volgtijdelijk correct worden opgestart? Of is dat "op hoop van zegen" na een reboot/docker update?
Nog los van dat Docker uberhaupt een crashende (/niet startende) container automatisch opnieuw laat opstarten (tot een X aantal pogingen). Dus dan zou die het als het goed is opnieuw proberen nadat de DB wel in de lucht is.
Of ben ik nu in de war met zowel systemd als Kubernetes die falende services / pods automatisch herstarten?
Joomla in Docker faalt als de DB niet beschikbaar is. Misschien heb je wel gelijk en zou ik daarvoor een ticket bij Joomla moeten openen?RobertMe schreef op vrijdag 17 mei 2024 @ 14:11:
[...]
Fatsoenlijke software zou dat gewoon moeten handlen? Dus error als DB niet beschikbaar is en op moment dat DB weer beschikbaar is weer verbinden.
Nog los van dat Docker uberhaupt een crashende (/niet startende) container automatisch opnieuw laat opstarten (tot een X aantal pogingen). Dus dan zou die het als het goed is opnieuw proberen nadat de DB wel in de lucht is.
Of ben ik nu in de war met zowel systemd als Kubernetes die falende services / pods automatisch herstarten?
Correctie, het heeft wat tijd nodig maar Joomla faalt er niet op.
[ Voor 4% gewijzigd door DjoeC op 17-05-2024 15:30 . Reden: Fout vertrekpunt ]
Joomla is in PHP geschreven. En PHP heeft een lifecycle bestaande uit requests. Dus alleen als je de Joomla website wilt openen en de DB is niet bereikbaar zou dat tot problemen mogen leiden. Tenzij de Docker container bij het opstarten het een en ander met de DB wilt doen. Maar dat is dan een probleem met het specifieke image en ligt dus niet aan Joomla zelf. Bij de PHP applicaties die ikzelf draai in Docker heb ik in ieder geval geen specifieke depends op de DB container.DjoeC schreef op vrijdag 17 mei 2024 @ 14:13:
[...]
Joomla in Docker faalt als de DB niet beschikbaar is. Misschien heb je wel gelijk en zou ik daarvoor een ticket bij Joomla moeten openen?
Joomla, dat is een naam die ik al lang niet meer heb gehoord / gelezen. Ik dacht dat dat al lang een stille dood gestorven zou zijn.
Zoals @RobertMe zegt:DjoeC schreef op vrijdag 17 mei 2024 @ 14:07:
[...]
Maar, hoe zorg jij ervoor dat ze volgtijdelijk correct worden opgestart? Of is dat "op hoop van zegen" na een reboot/docker update?
Ik ga er van uit (aannames, altijd gevaarlijk) dat de software op een dergelijke manier geschreven is, dat deze niet stuk gaat als de DB er nog niet is.RobertMe schreef op vrijdag 17 mei 2024 @ 14:11:
[...]
Fatsoenlijke software zou dat gewoon moeten handlen? Dus error als DB niet beschikbaar is en op moment dat DB weer beschikbaar is weer verbinden.
Nog los van dat Docker uberhaupt een crashende (/niet startende) container automatisch opnieuw laat opstarten (tot een X aantal pogingen). Dus dan zou die het als het goed is opnieuw proberen nadat de DB wel in de lucht is.
Of ben ik nu in de war met zowel systemd als Kubernetes die falende services / pods automatisch herstarten?
Daarnaast heb ik een paar "depends_on" referenties in de compose zitten.
Mijn Wordpress container heeft volgens mij wel een external-link naar de mariadb container, maar dat is volgens mij alleen maar om de connectie te garanderen.
In ieder geval (nog) geen problemen mee gehad.
Uit ervaring weet ik dat aannames je ooit pijn kunnen doen, zou fantastische voorbeelden kunnen gevenBen.Hahlen schreef op vrijdag 17 mei 2024 @ 14:39:
Ik ga er van uit (aannames, altijd gevaarlijk)
Voor prive is de oplossing niet super belangrijk anders dan in de context: "dit moet toch gewoon kunnen?". Dat mijn website een halve dag of een dag uit de lucht is kost niks MAAR t moet niet hoeven en moet te voorkomen zijn. Ik zie om me heen al veel te veel POCjes en Pilots en weet ik al niet wat waarbij het (nog lang niet eind)resultaat gammel is en blijft. Maar nu dwaal ik af.
Het zou gewoon moeten kunnen dat een container pas in de lucht komt als een andere (onafhankelijke!) container draait. Mijn gevoel is dat hier een "gebrek" in Docker zit: Afhankelijkheden kunnen niet of je moet alles in 1 grote compose mikken, include gebruiken is effectief natuurlijk hetzelfde.
Voor iemand die anderen beticht van een gebrek aan niveau schaam je je er ook niet echt voor om te laten zien dat je zelf ergens onderaan bungelt. Ik waardeer je eerlijkheid, maar het maakt je punt niet sterker. Als je nou wat minder onsamenhangend was en feit en mening kon scheiden in je teksten zou je nog een enkele medestander kunnen vinden.FateTrap schreef op woensdag 15 mei 2024 @ 13:48:
[...] Het is toch redelijk voor de hand liggend [...]
This too shall pass
Ik heb op basis van je reactie het relaas eens gelezen want TLTR. Wat een vermakelijk stukje tekstSharky schreef op vrijdag 17 mei 2024 @ 15:39:
[...]
Voor iemand die anderen beticht van een gebrek aan niveau schaam je je er ook niet echt voor om te laten zien dat je zelf ergens onderaan bungelt. Ik waardeer je eerlijkheid, maar het maakt je punt niet sterker. Als je nou wat minder onsamenhangend was en feit en mening kon scheiden in je teksten zou je nog een enkele medestander kunnen vinden.
Maar kom er vandaag achter dat sinds gisteren ineens al mijn containers en alles verdwenen is. Docker Desktop onder Windows via WSL met Linux containters.
Volgens mij is er geen update geweest. Niet wat ik zelf geïnitieerd heb. Ik ben bang dat alles dus gewoon weg is. Dat is dan wel meteen het nadeel van Docker heb ik gemerkt. Maar wellicht komt dat meer door niet te weten hoe je backups maakt.
Ik heb al gecheckt, er draait niets meer op de achtergrond.
Geen idee of de verwijzing naar de plek wellicht verkeerd is, maar net nu alles een beetje lekker begon te draaien, is dit wat er gebeurd.
Is er iets met een update geweest waar dit door kan gebeuren? Ergens in 2021 is zoiets wel aan de hand geweest kwam ik achter na een zoektocht.
Maar WSL images kun je 'gewoon' backuppen, dus daar zou ik eens mee beginnen voordat je alles weer opbouwd
1
| wsl export [distribution] [export path] |
Ik ben de vm's wel tegengekomen van WSL. Wellicht dat er een andere map is waar het in staat en dat Docker Desktop ergens anders kijkt door een update. Who knows.
Ga daar ook nog eens in duiken. Gelukkig zijn het dingen waar ik wel even zonder kan. Alhoewel ik het wel ruk vind dat ik nu mijn kookboek hierdoor kwijt ben. Daar stond weer van alles in. Alhoewel die waarschijnlijk zichtbaar is in een map binnen Windows zelf. Dat zou dan nog iets schelen. Nope.
Enige wat ik vervelend vind om kwijt te raken was dus Mealie, mijn kookboek. Echt...
[ Voor 8% gewijzigd door Arunia op 11-06-2024 10:43 ]
En alles is weer terug. Poeh, dat was even schrikken. Ben blij dat ik toch nog even naar de updates ben gaan kijken.
Je sources en je configs etc niet in de container op te slaan maar gewoon in een andere directory ergens op je schijf en die de backuppen net als de compose files. Althans zo doe ik t wil ik het doen. Alle config files netjes in een aparte map per project. Heb dat de basis al wel staan. Mijn RPI heeft ene /mnt/ssd/docker en daarin zit een map met bijvoorbeeld domoticz. Die map heeft in de root een docker-compose staan en dan naar gelang de services een map met de naam van de service met daarin de config files.DjoeC schreef op dinsdag 11 juni 2024 @ 10:41:
Dit zo lezend, wat is de beste oplossing om Docker containers en/of daarbij behorende gegevens regelmatig en gestructureerd te backuppen? In mijn geval een Pi. Databases, configuraties, data is redelijk te doen via kopie naar een andere machine. Maar alles op een eenvoudige manier - liefst in 1 keer?
Hmm dat ziet er wel interessant uit. Mijn vrouw en ik gebruiken nu 'Receptenmaker', maar alles wat selfhosted ook kan is beter :-DArunia schreef op dinsdag 11 juni 2024 @ 10:16:
@lolgast Dank je wel voor je reactie. Via WSL backuppen is inderdaad wel een goeie.
Ik ben de vm's wel tegengekomen van WSL. Wellicht dat er een andere map is waar het in staat en dat Docker Desktop ergens anders kijkt door een update. Who knows.
Ga daar ook nog eens in duiken. Gelukkig zijn het dingen waar ik wel even zonder kan. Alhoewel ik het wel ruk vind dat ik nu mijn kookboek hierdoor kwijt ben. Daar stond weer van alles in. Alhoewel die waarschijnlijk zichtbaar is in een map binnen Windows zelf. Dat zou dan nog iets schelen. Nope.
Enige wat ik vervelend vind om kwijt te raken was dus Mealie, mijn kookboek. Echt...
Container down -> backup -> container up?DjoeC schreef op dinsdag 11 juni 2024 @ 11:09:
@Webgnome In de basis gebruik ik zoiets. Ik ben aan t herstructureren: Docker onder OMV-7. Daarbij een paar Shared dir's met configs, data, containers zelf. Da's natuurlijk wel te backuppen. Alleen, wat zal de (data)consistentie zijn van de backup van een draaiende container?
Een database backuppen al draaiend is natuurlijk een no-go: je weet nooit wat nog in de cache staat, of welke transactie/update nu loopt tijdens je backup van de files.DjoeC schreef op dinsdag 11 juni 2024 @ 11:09:
@Webgnome In de basis gebruik ik zoiets. Ik ben aan t herstructureren: Docker onder OMV-7. Daarbij een paar Shared dir's met configs, data, containers zelf. Da's natuurlijk wel te backuppen. Alleen, wat zal de (data)consistentie zijn van de backup van een draaiende container?
Ik doe altijd een export via de CLI van de database: dat kan voor MySQL/MariaDB en Postgress. En dan een aantal versies (dagen oid) bewaren.
Dat backuppen overigens kun je geheel automatisch via een Docker container (yep
Docker DB Backup overigens kan CouchDB, InfluxDB, MySQL/MariaDB, Microsoft SQL, MongoDB, Postgres en Redis servers backuppen...
- dump to local filesystem or backup to S3 Compatible services, and Azure.
- multiple backup job support
- selectable when to start the first dump, whether time of day or relative to container start time
- selectable interval
- selectable omit scheduling during periods of time
- selectable database user and password
- selectable cleanup and archive capabilities
- selectable database name support - all databases, single, or multiple databases
- backup all to separate files or one singular file
- checksum support choose to have an MD5 or SHA1 hash generated after backup for verification
- compression support (none, gz, bz, xz, zstd)
- encryption support (passphrase and public key)
- notify upon job failure to email, matrix, mattermost, rocketchat, custom script
- zabbix metrics support
- hooks to execute pre and post backup job for customization purposes
- companion script to aid in restores
Ik doe overigens wel gewoon een backup van de database op basis van de files (ben lui). Maar als de restore daarvan niet lukt, dan heb ik dus altijd nog de echte database export.
[ Voor 47% gewijzigd door Mars Warrior op 11-06-2024 12:35 ]
Material 3 Thema's voor HA | Swiss Army Knife custom card voor HA | AmoebeLabs
Dat vind ik echt onacceptabel.
Ik gebruik Kopia als backup oplossing en die backupt mijn Docker appdata netjes elke paar uur. Bij veel applicaties heb ik een .kopiaignore staan, met daarin de bestanden en mappen die niet meegenomen horen te worden. Bijvoorbeeld voor de *arr applicaties:
1
2
3
4
5
6
7
8
| *.db-shm *.db-wal *.pid logs.db asp MediaCover logs Sentry |
En Plex:
1
2
3
4
5
6
7
8
9
10
11
12
| .LocalAdminToken Setup Plex.html plexmediaserver.pid transcode Cache Codecs Crash Reports Diagnostics Drivers Logs Plug-in Support/Caches Updates |
Alle *arr applicaties maken zelf sowieso backups met een retentie van een aantal dagen. Die neem ik dan ook mee in mijn backups, maar ook de primaire database en config.xml. Dat gaat goed, inclusief restores.
Voor MariaDB, MySQL en PostgreSQL applicaties heb ik dump scripts die de database dumpt naar SQL bestanden. Die kun je dan naderhand ook weer eenvoudig inlezen. Voorbeeld:
1
2
3
4
5
6
7
8
9
10
11
| # MariaDB dump single database (ie. Spotweb) docker exec -i spotweb-mariadb sh -c 'mariadb-dump -u"$DATABASE_USER" -p"$DATABASE_PASS" $DATABASE_NAME' > /opt/appdata/spotweb/database.sql # MariaDB dump all (ie. Home Assistant) docker exec -i homeassistant-mariadb sh -c 'mariadb-dump --all-databases' > /opt/appadata/homeassistant/database.sql # PostgreSQL dump single database (ie. Paperless) docker exec -i paperless-postgres /bin/bash -c 'PGPASSWORD=$POSTGRES_PASSWORD pg_dump --username=$POSTGRES_USER $POSTGRES_DB' > /opt/appadata/paperless/database.sql # PostgreSQL dump all databases (ie. Outline) docker exec -i outline-postgres /bin/bash -c 'PGPASSWORD=$POSTGRES_PASSWORD pg_dumpall --username=$POSTGRES_USER' > /opt/appdata/outline/database.sql |
Deze dumps maak ik dan per applicatie via een cronjob. Ik heb dan een .kopiaignore gemaakt voor databases, zodat de ruwe data niet meegenomen wordt. Bijvoorbeeld dit:
1
2
| database !database.sql |
En een restore voor Outline (Postgres) is dan zoiets:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # Stop the database docker stop outline-postgres # Delete the current Postgres data and Redis cache rm -rf /opt/appdata/outline/database/ /opt/appdata/outline/redis/ # Re-start the database docker start outline-postgres # Restore the dumped database through psql docker exec -i outline-postgres /bin/bash -c 'PGPASSWORD=$POSTGRES_PASSWORD psql -U $POSTGRES_USER' < /opt/appdata/outline/database.sql # Re-start Redis and Outline docker start outline-redis outline |
Dan hoeft de applicatie niet offline voor een backup. En omdat de sql bestanden in principe tekst bestanden zijn comprimeert en dedupliceert dat ook nog eens fantastisch in Kopia. Mijn Kopia backups sync in dan overigens ook weer naar externe locaties zodat ik altijd meerdere kopieën van mijn backups heb.
Ik kan niet ruiken welke subtekst jij bedoelt met een duiveltje. Wat mij betreft betekend dat gewoon lomp zijn, zoals je zelf suggereert

Dat is afhankelijk van de database die je gebruikt. Bv PostgreSQL gebruikt een Write-Ahead-Log. Elke wijziging wordt gelogd en daarna pas verwerkt. De WAL wordt in één write actie geupdate en is dus altijd consistent, en de wijzigingen van de database zelf kan die altijd replayen op basis van de WAL.Mars Warrior schreef op dinsdag 11 juni 2024 @ 12:20:
[...]
Een database backuppen al draaiend is natuurlijk een no-go: je weet nooit wat nog in de cache staat, of welke transactie/update nu loopt tijdens je backup van de files.
De PostgreSQL developers geven dan ook de garantie af dat je met een backup incl WAL altijd de database kunt "restoren". InfluxDB gebruikt ook een WAL en zou daardoor gelijk moeten zijn, maar zij doen geen uitspraken over een garanties.
MySQL daarentegen gebruikt uberhaupt geen WAL en geeft IIRC ook expliciet aan dat je altijd een dump moet maken.
Hier wil ik ook nog eens naar kijken. Mijn cronjob oplossing van boven werkt goed, maar staat los van de stack en is afhankelijk van het host OS. Dat voelt toch niet helemaal je-van-het. Ik wil eigenlijk gewoon een oplossing kunnen deployen in mijn (Compose) stack. Dat is m.i. ook wat minder onderhoudsgevoelig.Mars Warrior schreef op dinsdag 11 juni 2024 @ 12:20:
[...]
Docker DB Backup overigens kan CouchDB, InfluxDB, MySQL/MariaDB, Microsoft SQL, MongoDB, Postgres en Redis servers backuppen...
Tja... Dat kan en is voor sommige containers niet zo'n issue. Maar voor anderen (zoals Mosquitto) ligt dat natuurlijk anders - al is een backup daarvan maar heel beperkt qua duur/omvang.
Mariadb (database deel) doe ik nu met Navicat scheduled tasks vanaf Windows. Niet alle schema's want elke keer 21GB over t netwerk backuppen vergt ook al snel een bak met tijd (4 minuten voor 2GB). Bij een restore van een 5GB schema werd m'n target SSD wel erg warm (50+ C.)Mars Warrior schreef op dinsdag 11 juni 2024 @ 12:20:toon volledige bericht
[...]
Een database backuppen al draaiend is natuurlijk een no-go: je weet nooit wat nog in de cache staat, of welke transactie/update nu loopt tijdens je backup van de files.
Ik doe altijd een export via de CLI van de database: dat kan voor MySQL/MariaDB en Postgress. En dan een aantal versies (dagen oid) bewaren.
Dat backuppen overigens kun je geheel automatisch via een Docker container (yep) doen natuurlijk, inclusief interval en bewaarregels...
Docker DB Backup overigens kan CouchDB, InfluxDB, MySQL/MariaDB, Microsoft SQL, MongoDB, Postgres en Redis servers backuppen...Dankzij de encryptie kun je de backups ook behoorlijk veilig extern opslaan en dankzij de notificatie blijven backup problemen niet onopgemerkt!
- dump to local filesystem or backup to S3 Compatible services, and Azure.
- multiple backup job support
- selectable when to start the first dump, whether time of day or relative to container start time
- selectable interval
- selectable omit scheduling during periods of time
- selectable database user and password
- selectable cleanup and archive capabilities
- selectable database name support - all databases, single, or multiple databases
- backup all to separate files or one singular file
- checksum support choose to have an MD5 or SHA1 hash generated after backup for verification
- compression support (none, gz, bz, xz, zstd)
- encryption support (passphrase and public key)
- notify upon job failure to email, matrix, mattermost, rocketchat, custom script
- zabbix metrics support
- hooks to execute pre and post backup job for customization purposes
- companion script to aid in restores
Ik doe overigens wel gewoon een backup van de database op basis van de files (ben lui). Maar als de restore daarvan niet lukt, dan heb ik dus altijd nog de echte database export.
Eigenlijk zou er iets moeten zijn zoals VSS onder Windows.
De Backup container was ik ook al tegengekomen. Geen idee of die echt goed werkt maar ontkoppelt me natuurlijk wel van het aan hebben staan van de Windows PC.
Klopt. Ik had mijn post ook nog gewijzigd met "Ik doe overigens wel gewoon een backup van de database op basis van de files (ben lui). Maar als de restore daarvan niet lukt, dan heb ik dus altijd nog de echte database export."RobertMe schreef op dinsdag 11 juni 2024 @ 12:41:
[...]
Dat is afhankelijk van de database die je gebruikt. Bv PostgreSQL gebruikt een Write-Ahead-Log. Elke wijziging wordt gelogd en daarna pas verwerkt. De WAL wordt in één write actie geupdate en is dus altijd consistent, en de wijzigingen van de database zelf kan die altijd replayen op basis van de WAL.
De PostgreSQL developers geven dan ook de garantie af dat je met een backup incl WAL altijd de database kunt "restoren". InfluxDB gebruikt ook een WAL en zou daardoor gelijk moeten zijn, maar zij doen geen uitspraken over een garanties.
MySQL daarentegen gebruikt uberhaupt geen WAL en geeft IIRC ook expliciet aan dat je altijd een dump moet maken.
En dat is gebaseerd op wat jij aangeeft, al heb ik dus ook al na een crash een Postgress database gehad die echt niet meer wilde restoren, ondanks de WAL.
MySQL / MariaDB zijn wat dat betreft pokke databases die ook na een herstart van een container wel eens willen crashen met een fatal error. Die moet ik dan een paar keer herstarten helaas

Material 3 Thema's voor HA | Swiss Army Knife custom card voor HA | AmoebeLabs
https://github.com/docker/for-win/issues/14118 ? Er zijn er een aantal met dataverliesArunia schreef op dinsdag 11 juni 2024 @ 10:47:
Ik zie dat er net een update is en na voor het eerst in mijn leven een release note te hebben gelezen, staat er precies mijn probleem omschreven...
En alles is weer terug. Poeh, dat was even schrikken. Ben blij dat ik toch nog even naar de updates ben gaan kijken.

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Die had ik inderdaad gemist.Mars Warrior schreef op dinsdag 11 juni 2024 @ 12:47:
[...]
Klopt. Ik had mijn post ook nog gewijzigd met "Ik doe overigens wel gewoon een backup van de database op basis van de files (ben lui). Maar als de restore daarvan niet lukt, dan heb ik dus altijd nog de echte database export."
En doe zelf ook beiden. "Officieel" doe ik een pg_dump, maar boel draait op ZFS en ik snapshot (en sync / send & receive) gewoon ook de data dir van PG.
Niet toevallig geprobeerd te gebruiken met een andere PG versie? PGs data format is namelijk maar compatible met 1 (major) versie en niet "upgradeable". Als je de files hebt moet je dus dezelfde major versie gebruiken om weer een werkende DB te krijgen.En dat is gebaseerd op wat jij aangeeft, al heb ik dus ook al na een crash een Postgress database gehad die echt niet meer wilde restoren, ondanks de WAL.
Daarnaast is er IIRC ook nog een dingetje met file consistency. Het kan zijn dat er nog 1 of 2 additionele files bij de WAL hoorde en deze set aan files moet onderling consistent zijn. Iets dat ZFS snapshots kan garanderen. Maar als je gewoon tududuu de files doet kopieren kan het zijn dat dat file 2 wordt aangepast terwijl file 1 gekopieerd wordt in de oude state. Waardoor file 2 nieuwer is en mismatcht met file 1.
Dat heb ik persoonlijk nog niet mee gemaakt. Maarja, MySQL / MariaDB...MySQL / MariaDB zijn wat dat betreft pokke databases die ook na een herstart van een container wel eens willen crashen met een fatal error. Die moet ik dan een paar keer herstarten helaas
Ik had ook nog een oude game pc "over", waar nog een redelijke GPU in zit; een Asus RX 6650 TX. En ik wilde al een tijdje iets met Local LLM's gaan doen.
Heb nu dus Ubuntu 24.04 LTS baremetal draaien met daarop Ollama. Daarnaast draait nu dus ook Docker met wat ondersteunende containers (Portainer uiteraard, maar ook AnythingLLM en StableDiffusion) en alles draait en werkt best geinig. Echter: Ik heb (bijna) geen Linux ervaring, los van wat gerommel met een Raspberry Pi en ik voorzie een klein issue op redelijk korte termijn... Ik heb het geheel geinstalleerd op een SSD van 128 GB.
Nu zit er een extra SSD in van 256 GB en heb ik een nieuwe ext4 partitie toegevoegd, maar het probleem zit hem in het verplaatsen van de containers. Kan het uberhaubt?
Misschien is er een Linux guru die een n00b wat kan leren?
Met zo'n administrator heb je geen users meer nodig...
Tja, dit helpt ook niet echt natuurlijk.
Tuurlijk zal de vraag op te zoeken zijn, maar de poster geeft wel aan dat hij noob en dus beginner is. Tuurlijk is eigen inzet gewenst, maar op een vriendelijke toon wat goede zoektermen meegeven zou in mijn ogen een wat betere reactie geweest zijn.
[ Voor 54% gewijzigd door Question Mark op 14-06-2024 11:29 ]
Het kwaliteitsproces bij dit dev team moet echt gewijzigd worden. Zoveelste keer dat er regressiebevindingen voordoen.Raven schreef op dinsdag 11 juni 2024 @ 12:50:
[...]
https://github.com/docker/for-win/issues/14118 ? Er zijn er een aantal met dataverlies
Terwijl Docker (Desktop) icm WSL2 in menig Dev team cruciaal is.
"We never grow up. We just learn how to act in public" - "Dyslexie is a bitch"
Iets met broek en afzakken en zo.It looks like the WSL instance "docker-desktop-data" isn't used anymore. Instead AppData\Local\Docker\wsl\disk\docker_data.vhdx is hard coded?
I used to move the data to a different partition by using wsl --export and wsl --import, guess that's not going to work anymore and I will have an ever growing file on my system drive.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| sudo -s # Stop all containers and Docker docker stop $(docker ps -aq) systemctl stop docker # Create new directory and copy everything over mkdir -p /var/data/usb/docker cp -p -r /var/lib/docker/* /var/data/usb/docker/ # Add docker root to dameon config vim /etc/docker/daemon.json # Add -> "data-root": "/var/data/usb/docker/" # Start Docker systemctl start docker |
Waarbij /var/data/usb/ uiteraard de andere partitie was.