Si të ruani imazhet dhe kontejnerët e Docker në një disk të jashtëm


Docker ruan imazhet e shkarkuara, kontejnerët që funksionojnë dhe të dhënat e vazhdueshme të vëllimit në një rrënjë të vetme drejtorie të përbashkët në diskun e sistemit tuaj. Mund ta personalizoni konfigurimin tuaj për të përdorur një disk të jashtëm, ndarje rrjeti ose disk të dytë të brendshëm nëse keni nevojë të shtoni hapësirë ruajtëse në instalimin tuaj.

Përgatitja

Pjesa kryesore e këtij udhëzuesi zbatohet për Docker Engine për Linux dhe Docker Desktop në Windows dhe Mac. Ju do të duhet të gjeni skedarin tuaj Docker daemon.json në të tre platformat. Kjo do të jetë në një nga vendet e mëposhtme:

  • /etc/docker/daemon.json në Linux.
  • %programdata%\docke

    Docker këshillon që përdoruesit e Windows dhe Mac të përditësojnë skedarin e konfigurimit nëpërmjet UI, në vend që të aplikojnë manualisht ndryshimet në një redaktues teksti. Mund të hyni në ekranin e cilësimeve duke shkuar te Preferencat > Docker Engine > Ndrysho skedarin në ndërfaqen Docker Desktop.

    Ndryshimi i drejtorisë së të dhënave tuaja

    Vendndodhja e drejtorisë së të dhënave të Docker kontrollohet nga cilësimi data-root në skedarin tuaj të konfigurimit. Versionet e vjetra të Docker të lëshuara para 17.06 përdorën në vend të kësaj grafi. Mund të kontrolloni versionin që keni duke ekzekutuar komandën versioni docker.

    $ docker version
    ...
    Server: Docker Engine - Community
      Engine:
        Version: 20.10.17

    Gjeni ose shtoni çelësin përkatës brenda skedarit të konfigurimit. Vendosni rrugën tuaj të dëshiruar të drejtorisë si vlerën e saj. Këtu është një shembull Linux që do të ruajë të dhënat e Docker në një disk të jashtëm të montuar në sistemin e skedarëve:

    {
        "data-root": "/mnt/docker-data"
    }

    Duhet të rinisni daemonin Docker pasi të bëni ndryshimin:

    $ sudo service docker restart

    Docker Desktop mund të riniset në Windows dhe Mac duke dalë nga ai dhe më pas duke nisur një shembull të ri.

    Nëse dëshironi të ruani përmbajtjen tuaj ekzistuese, duhet të kopjoni përmbajtjen e direktorisë suaj aktuale të të dhënave në shtegun e ri. Përndryshe, do të filloni me një plan të pastër, të paaftë për të hyrë në kontejnerët dhe imazhet e krijuara më parë.

    $ sudo rsync -aSv /var/lib/docker/ /mnt/docker-data

    Ndryshimi i drejtorisë së të dhënave pa rinisje

    Ju mund ta zhvendosni direktorinë tuaj të të dhënave pa e rifilluar demonin duke krijuar një lidhje simbolike nga /var/lib/docker në vendndodhjen tuaj të re. Kjo mund të jetë e dobishme nëse po ju mbaron hapësira në një host ku një rinisje e paplanifikuar e shërbimit Docker nuk është një opsion i zbatueshëm.

    Kopjoni të dhënat tuaja ekzistuese Docker në drejtorinë tuaj të re:

    $ sudo rsync -aSv /var/lib/docker/ /mnt/docker-data

    Më pas krijoni një lidhje simbolike që zgjidh /var/lib/docker në vendndodhjen e synuar:

    $ sudo ln -s /mnt/docker-data/ /var/lib/docker

    Mos e përdorni këtë teknikë për ngarkesat e punës që modifikojnë me shpejtësi të dhënat e sistemit të skedarëve. Ekziston rreziku i mospërputhjeve nëse të dhënat shkruhen në kohën ndërmjet kopjimit të drejtorisë ekzistuese dhe krijimit të lidhjes simptome.

    Çfarë Ndryshon në të vërtetë?

    Ndryshimi i drejtorisë rrënjësore të Docker ndikon në të gjitha llojet e ndryshme të të dhënave që ruan demon. Kjo përfshin imazhet tuaja, kontejnerët, shtojcat e instaluara, konfigurimin e Swarm dhe vëllimet, si dhe cache-in e ndërtimit të Docker.

    Modifikimi i shtegut do t'i shkruajë të gjitha këto të dhëna në vendndodhjen tuaj të re. Ju nuk mund të lëvizni në mënyrë selektive lloje specifike për të ndarë pikat e montimit. Kjo do të thotë se është e rëndësishme të zgjidhni një vend ruajtjeje që do të ofrojë performancë të mirë të përgjithshme. Përdorimi i një disku të jashtëm të ngadaltë mund të dëmtojë reagimin e operacioneve të docker CLI, edhe nëse do t'i përshtatet disa llojeve të të dhënave, si p.sh. ruajtja afatgjatë e imazheve.

    Në mungesë të mbështetjes për shtegun e të dhënave për çdo lloj, krasitja e burimeve të papërdorura mund të jetë një mënyrë më e mirë për të menaxhuar kërkesat e ruajtjes së Docker. Në vend që të ndani më shumë hapësirë Docker, pastroni asetet e tepërta dhe shtyni imazhet e papërdorura në një regjistër qendror të veçantë. Kjo mund të çlirojë hapësirë të konsiderueshme në hostin tuaj.

    Përdorimi i njëhershëm i një drejtorie të ndryshme të të dhënave

    Mund ta nisni manualisht Docker Engine me një direktori specifike të dhënash duke kaluar flamurin --data-root kur filloni demonin. Kjo mund të përdoret për të kaluar midis drejtorive të të dhënave ose për të ekzekutuar një shembull të pastër pa të dhënat tuaja ekzistuese.

    $ sudo /usr/bin/dockerd --data-root /mnt/docker-data

    Flamuri do të anashkalojë shtegun e drejtorisë të specifikuar nga skedari daemon.json. Drejtoria e konfiguruar do të mbetet e paprekur, kështu që ju mund të ktheheni në atë shembull në të ardhmen.

    Përmbledhje

    Docker ruan të gjitha të dhënat e tij duke përfshirë imazhet e ndërtuara dhe të tërhequra, kontejnerët e krijuar dhe vëllimet brenda një peme të vetme direktorie. Rrënja është zakonisht /var/lib/docker por mund ta personalizoni duke shtuar një cilësim në skedarin tuaj të konfigurimit ose duke dhënë flamurin --data-root kur filloni demon.

    Ndryshimi i drejtorisë së të dhënave do të thotë që të dhënat tuaja ekzistuese nuk do të shfaqen në Docker nëse nuk i kopjoni në shtegun e ri. Ju mund ta përdorni këtë veçori për të mbajtur disa depo të pavarura të ruajtjes së Docker, si një për projekte personale dhe një tjetër për punë. Sidoqoftë, do të duhet të rinisni demonin përpara se të ndërroni kontekstet, pasi vetëm një shembull mund të funksionojë njëkohësisht.


    Të gjitha të drejtat e rezervuara. © Linux-Console.net • 2019-2024