Puncte:0

Care este modalitatea corectă de a monta automat o unitate externă într-un container docker?

drapel cn

Vreau să creez un serviciu cloud personal într-un container docker pe un Raspberry Pi. Datorită stocării limitate și longevității cardurilor SD, vreau să creez baza de date o unitate externă de capacitate suficientă.

Mai întâi m-am confruntat cu problema montării în container și am putut rezolva această problemă prin crearea unui container privilegiat. Acum am vrut să folosesc autofs.service pentru a monta automat unitatea în locația dorită, dar systemd lipseste. După câteva citite, am constatat că nu este recomandată utilizarea într-un recipient.

Deci, cum montez automat o unitate în cel mai simplu mod? Care este calea de urmat?

Puncte:0
drapel vn

Cred că modalitatea corectă de a face acest lucru este prin montarea unității externe pe sistemul dumneavoastră gazdă și apoi maparea volumului pe container la pornire.

Voi oferi un exemplu de bază cu Container NextCloud.

Deci, montați unitatea externă în mod normal pe sistemul dumneavoastră gazdă - să presupunem că o montați pe /mnt/my-data.

Apoi, doriți să creați un director pentru datele NextCloud:

$ mkdir /mnt/my-data/nc-data

Apoi, când rulați imaginea containerului NextCloud, furnizați informații pentru a mapa volumul în directorul intern de date NextCloud:

$ docker run -d \
-v /mnt/my-data/nc-data:/var/www/html \
nextcloud

Dacă doriți o bază de date externă, faceți același lucru pentru MariaDB:

$ mkdir /mnt/my-data/nc-mariadb

$ docker run -d \
-v /mnt/my-data/nc-mariadb:/var/lib/mysql \
mariadb

Asigurați-vă că proprietarul și permisiunile pentru directoarele de date se potrivesc cu cele ale containerului care rulează.

Mi se pare ca este cel mai usor de folosit docker-compune pentru a genera un fișier de instalare complet al întregii stive de containere. Folosind exemplul de mai sus și docker-compune fișier afișat pe Docker Hub, acesta ar fi rezultatul:

versiunea: '2'

Servicii:
  db:
    imagine: mariadb
    reporniți: întotdeauna
    comandă: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volume:
      - /mnt/my-data/nc-mariadb:/var/lib/mysql
    mediu inconjurator:
      - MYSQL_ROOT_PASSWORD=
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  aplicatie:
    imagine: nextcloud
    reporniți: întotdeauna
    porturi:
      - 8080:80
    link-uri:
      - db
    volume:
      - /mnt/my-data/nc-data:/var/www/html
    mediu inconjurator:
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

Rețineți că secțiunea „volume” nu este prezentă, deoarece mapăm o cale absolută pe sistemul dumneavoastră gazdă (/mnt/my-data/nc-xxxx) și nu un volum numit.

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.