Puncte:1

Cum se configurează volume de docker în rețea persistente?

drapel us

Caut o opțiune pentru stocarea docker persistentă departe de serverul pe care rulează.

Știu că pot monta o partajare CIFS folosind un volum numit și driverul de stocare local, dar aceste volume par să fie montate de legare și nu sunt gestionate de docker, așa că trebuie să te ocupi de problemele de permisiuni ale utilizatorilor care vin cu acestea.

În mod ideal, acesta ar fi dintr-un docker-compose.yml.

Sunt deschis la orice tip de țintă pe care o pot rula local, probabil că o voi rula de pe desktop-ul meu Windows, dar pot configura o țintă iscsi sau orice este nevoie cu adevărat. Scopul este de a centraliza datele, astfel încât să se facă backup mai ușor și astfel încât să mă pot concentra pe persistența datelor și să nu fiu nevoit să-mi fac griji pentru VM-urile în sine. Sper să fac asta fără a complica lucrurile doar folosind volume locale denumite.

Vă mulțumim anticipat pentru orice ajutor pe care îl puteți oferi!

drapel in
Te-ai uitat la [pluginurile driverului de volum](https://docs.docker.com/engine/extend/legacy_plugins/#volume-plugins)?
Sam Foley avatar
drapel us
@GeraldSchneider da, nimeni nu face cu adevărat ceea ce vreau, cel mai apropiat este pluginul de stocare local normal care montează o partajare Cifs (sau smb în cazul meu), dar este doar o montare de legătură, așa că problemele de permisiuni standard cu monturile de legare intră în joc și ar trebui să fie să fie rezolvată cel puțin o dată pentru fiecare container diferit, dacă nu mai des atunci când lucrurile merg prost :(
Puncte:1
drapel us

Bine, așa că mi-am dat seama în cele din urmă că motivul pentru care acest lucru nu funcționează pentru mine și îmi sparge containerul a fost pentru că containerul include mongodb și mongodb nu va funcționa pe o montură ca aceasta, există o problemă Github deschisă pentru asta.

Așadar, cele de mai jos funcționează pentru mine, rulând cea mai mare parte local, dar instalând folderul de copii de rezervă pe spațiul de stocare partajat, mai puțin decât ideal, deoarece ar trebui să refac o copie de rezervă, dar și suficient de bun, deoarece acesta este un proces simplu pentru cazul meu de utilizare.

volume:
  unificat:
  unifi_backup:
    driver_opts:
      tip: cif
      o: „nume utilizator=DockerMounts,parolă=SuperSecurePassword,uid=1000,gid=1000”
      dispozitiv: „//192.168.0.2/FastDockerVolumes/unifi/backup”
Puncte:0
drapel ca

Am specificat inițial volumul CIFS direct în fișierul meu de compunere, dar apoi mi-am dat seama că în majoritatea scenariilor, deoarece trebuie să eliminați manual orice volum pe care doriți să îl reconfigurați, probabil că este mai bine să utilizați un volum definit extern, astfel încât să nu fiți căsătorit. către CIFS în fiecare implementare.

docker-compose oprește spațiarea numelor volumelor furnizate extern, dar putem rezolva asta solicitând ca numele volumului să fie specificat ca variabilă de mediu, probabil în dvs. .env:

Servicii:
  serviciul meu:
    volume:
      - date:/mnt/data
volume:
  date:
    nume: „${DATA_VOLUME?}”
    extern: adevărat

și apoi creați manual volumul folosind, de exemplu:

# Am putea folosi la fel de bine convenția standard de spațiere a numelor proiectelor
DATA_VOLUME=compune-date_proiect
# N.B. TREBUIE să utilizați opțiunea addr când vă bazați pe rezoluția DNS
Docker Volume create \
  --nume $DATA_VOLUME \
  --driver local \
  --opt tip=cifs \
  --opt "device=//remote.host/share/path" \
  --opt "o=addr=remote.host,domain=$DOMAIN,username=$USER,parola=$PASS"

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.