Docker pe Raspberry Pi

Comanda de upgrade e pentru instalare directă. Dacă e imagine pentru docker, acolo pur și simplu pui noua imagine cu aplicația actualizată și refaci containerul, setările se păstrează în folderele mapate pe host. De ce ai intra în container în consolă ca să faci upgrade așa?

În pi-hole-ul meu fără docker nu am avut probleme la nici un upgrade. Singura problemă recentă e că o bună parte din cele vreo 40 de liste nu mai sunt accesibile, și gravity update durează o veșnicie până primește timeout.
 
Home Assistant in Docker cu Portainer (in LibreELEC, ca n-am decat un singur Pi si media player-ul are prioritate). Nu gasesc configuratia HA pe host. In directorul docker-ului sunt mai multe zeci de directoare care par sa fie niste overlay-uri unele au unele dintre fisierele HA, altele au alte fisiere din HA, nici unul nu le are pe toate. Interfata Portainer nu ajuta deloc. Nu gasesc nici o mapare intre container si host. La volumes e gol.
1) Cum gasesc configuratia?
2) Cum o modific astfel incat sa nu se piarda?
3) Cum fac sa trec Home Assistant pe HTTPS si sa refuze HTTP? Cu HTTPS pe portul default 8123 da o eroare, desi citesc pe net ca ar trebui sa fie acelasi port si pentru HTTPS.
Multumesc.
 
Ai citit în detaliu cum se folosește docker? Portainer e doar un front-end ca să nu tastezi de mână comenzile în CLI cu 25 de parametri, nu are nimic magic în plus.

Cum ai rulat HA, cu "docker run HA" sau cu încă o gârlă de parametri, inclusiv prin care să mapezi foldere din container la foldere de pe sistemul tău, unde să fie fișierele de configurație păstrate persistent? Dacă n-ai făcut nici o mapare conform instrucțiunilor HA, toate datele tale sunt temporare în container, le poți accesa doar prin consola deschisă prin docker.

Pentru punctul 3, vezi instrucțiunile HA și forumul HA.
 
Pai eu aveam impresia ca ceea ce downloadez si instalez din Portainer vine "by default" cu niste setari...
 
ÎN container, și doar uneori. Dacă le vrei afară din container (persistente), mai citește și partea cu mapatul căilor.
 
Code:
http://sysctl.org/cameleon/hosts
https://adaway.org/hosts.txt
https://bitbucket.org/ethanr/dns-blacklists/raw/8575c9f96e5b4a1308f2f12394abd86d0927a4a0/bad_lists/Mandiant_APT1_Report_Appendix_D.txt
https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-blocklist.txt
https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-malware.txt
https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts;showintro=0
https://phishing.army/download/phishing_army_blocklist_extended.txt
https://ransomwaretracker.abuse.ch/downloads/CW_C2_DOMBL.txt
https://ransomwaretracker.abuse.ch/downloads/LY_C2_DOMBL.txt
https://ransomwaretracker.abuse.ch/downloads/RW_DOMBL.txt
https://ransomwaretracker.abuse.ch/downloads/TC_C2_DOMBL.txt
https://ransomwaretracker.abuse.ch/downloads/TL_C2_DOMBL.txt
https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt
https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.2o7Net/hosts
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.Risk/hosts
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.Spam/hosts
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/KADhosts/hosts
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/UncheckyAds/hosts
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
https://reddestdream.github.io/Projects/MinimalHosts/etc/MinimalHostsBlocker/minimalhosts
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt
https://v.firebog.net/hosts/AdguardDNS.txt
https://v.firebog.net/hosts/Easylist.txt
https://v.firebog.net/hosts/Easyprivacy.txt
https://v.firebog.net/hosts/Prigent-Ads.txt
https://v.firebog.net/hosts/Prigent-Malware.txt
https://v.firebog.net/hosts/Prigent-Phishing.txt
https://v.firebog.net/hosts/Shalla-mal.txt
https://v.firebog.net/hosts/static/w3kbl.txt

Astea-s la mine, circa 356.000 domenii blocate. Upstream e OpenDNS care mai filtează și el malware. La un moment dat a avut probleme Amazon Fire TV și l-am trecut în grupul fără restricții, apoi și-a revenit.

[edit] Le-am sortat alfabetic că mă deranja la OCD :biggrin:
 
Last edited:
Vedeți că au fost niște modificări de securitate recente, și OS-ul (sau docker?) poate avea o limită minimă de la care un user poate deschide un port. Așa m-am trezit că pi-hole rulând în docker pe rețeaua Host nu putea folosi porturile 53, 80 și 443 sub userul pi fiindcă era limitat ca doar root să poată deschide porturi sub 1024. Workaround-ul a fost o variabilă de mediu în container să ruleze ca root, dar e riscant așa dacă ai ceva expus în internet. Echipa pi-hole a făcut un fix, momentan e doar în varianta dev.
 
Ale cui au fost modificarile de securitate? Linux kernel? Si de cand au mai bagat si porcaria asta?
Intreb fiindca am un car de servicii care ruleaza non-root pe linux-uri.
 
Păi blocat binding la plebe pe privileged ports e de când e linuxul. De la docker m-aș aștepta să facă bind pe porturi interne și să facă redirect de pe porturile privilegiate (iptables and stuff au acces la porturi), poate s-a modificat ceva pe acolo.
 
Acuma am putut căuta link-urile, hai să începem de aici:


Aparent cauza e ultima versiune de docker din 23 martie 2022:


care a schimbat metoda de moștenire a permisiunilor pentru containere pentru a rezolva vulnerabilitatea asta:


Și consecința a fost că acum containerul pi-hole nu mai primește implicit permisiunea NET_ADMIN:



Ca workaround, containerul pi-hole poate să aibă variabila DNSMASQ_USER=root sau PIHOLE_UID=0 pentru a putea funcționa corect.

Soluția finală e un nou release de imagine care să aibă explicit definită permisiunea NET_ADMIN. Un dev release a fost pus în 30 martie, apoi din 2 aprilie e disponibil ca imaginea 2022.04.2beta.

Dar problema moștenirii este valabilă pentru orice container, deci dacă sughiță vreun altul... de-aia e.

De asemenea, legat de binding pentru aplicații non-root la porturi „privilegiate” (sub 1024), iaca o discuție de acu' 13 ani:

 
Având în vedere că acum Raspberry Pi mk4 cu 4GB costă undeva la 200EUR pentru că scalpingul nu putea lipsi de aici, îmi place threadul ăsta ca nostalgie pentru cei care au hardware-ul dinainte de Marea Depresie Hardware începută în 2020.
 
N-a iesit fengshui-ul cu wordpress pe router. "Clientul" :biggrin: a vrut o tema asa de complexa incat php-ul moare in chinuri. Am trecut la solutia 2: pus container pe RPi-ul cu LibreELEC. Dar alte tehnologii, alte probleme, desigur:
The uploaded file exceeds the upload_max_filesize directive in php.ini.
Din documentatie: "you could create a custom.ini with the desired parameters and place it in the $PHP_INI_DIR/conf.d/ directory."

1) Unde gasesc $PHP_INI_DIR si ce mapez in portainer astfel incat sa ramana?
2) Din cate inteleg, imaginea default foloseste php-cgi si exista o alta imagine cu php-fpm. In documentatie zice: "In order to use this image variant, some kind of reverse proxy will be required." Credeam ca imaginea include deja un server web, de ce mai am nevoie si de un reverse proxy si ce treaba are reverse proxy-ul cu php-ul?
 
Last edited:
1) după cum arată documentația oficială pentru imaginile php, pare că oamenii se așteaptă să faci build la propriile imagini (extinzând imaginea lor) cu setările tale custom; probabil poți monta conf.d-ul ca volum, dar nu m-am uitat ce-i acolo. Pentru env vars și restul vezi docker exec -it ... bash
2) Nu îți trebuie php-fpm. Aia e în principal pentru nginx, care nu are modul specific de php ca apache, și interfațează prin FastCGI acel php (php în sine e protocol-agnostic, îi dai un text și îți dă alt text, poți să împachetezi textele alea cum vrei).
 
Nu-mi mai merge portainer-ce:latest.
Browser: 404

Am incercat docker stop / rm / rmi si:
Code:
RPi:/ # docker run -d -p 10089:8000/tcp --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Unable to find image 'portainer/portainer-ce:latest' locally
latest: Pulling from portainer/portainer-ce
772227786281: Pull complete
96fd13befc87: Pull complete
01a88f1f9083: Pull complete
ecfdab45b4b1: Pull complete
Digest: sha256:444ade51d69d7fca889c7aa14525c459dba313a0e7ca79aee985e6c0749427de
Status: Downloaded newer image for portainer/portainer-ce:latest
f04fbc9aecddab0ceec82898655072a82b0f8be35eeb736ce2944941b81bc498
...dar nu s-a schimbat nimic.
Am mai incercat:
Code:
RPi:/ # docker ps
CONTAINER ID        IMAGE                           COMMAND                 CREATED             STATUS              PORTS                                         NAMES
f04fbc9aecdd       portainer/portainer-ce:latest   "/portainer"             3 minutes ago       Up 2 minutes        9000/tcp, 9443/tcp, 0.0.0.0:10089->8000/tcp   portainer
0ef40cdee37b        wordpress:latest                "docker-entrypoint.s…"   3 months ago        Up 2 weeks          0.0.0.0:80->80/tcp                            PsihoExpertWP
RPi:/ # docker exec -it f04fbc9aecdd /bin/sh
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory": unknown
RPi:/ # docker exec -it f04fbc9aecdd /bin/bash
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown
RPi:/ # docker exec -it f04fbc9aecdd /bin/ls
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"/bin/ls\": stat /bin/ls: no such file or directory": unknown
RPi:/ # docker exec -it f04fbc9aecdd /bin/busybox
Ce altceva mai pot face? Sa sterg portainer_data?

LE:
Code:
RPi:/ # docker volume create portainer-data2
portainer-data2
RPi:/ # docker rm portainer
portainer
RPi:/ # docker run -d -p 10089:8000/tcp --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data2:/data portainer/portainer-ce:latest
dd7b61d5ec81782c82ef24d2700aa15db4381f91b41987f977f846a412b9f58c
Tot nu merge.
 
Last edited:
Nu-mi mai merge portainer-ce:latest.
Browser: 404

Am incercat docker stop / rm / rmi si:
Code:
RPi:/ # docker run -d -p 10089:8000/tcp --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Unable to find image 'portainer/portainer-ce:latest' locally
latest: Pulling from portainer/portainer-ce
772227786281: Pull complete
96fd13befc87: Pull complete
01a88f1f9083: Pull complete
ecfdab45b4b1: Pull complete
Digest: sha256:444ade51d69d7fca889c7aa14525c459dba313a0e7ca79aee985e6c0749427de
Status: Downloaded newer image for portainer/portainer-ce:latest
f04fbc9aecddab0ceec82898655072a82b0f8be35eeb736ce2944941b81bc498
Era portul gresit. Trebuia -p 10089:9000.
 
Trebuie sa schimb RPi-ul. Pot sa re-creez containerele usor pe RPi-ul nou, dar cum fac sa mut volumele containerelor pe un alt host? Pe net gasesc tot felul de scripturi f. f. complicate, gen asta. Nu merg pur si simplu copiate?
 
Back
Top