Προσπαθώ να δημιουργήσω μια λύση δημιουργίας αντιγράφων ασφαλείας και επαναφοράς για τα δοχεία Docker με τα οποία εργαζόμαστε.
Έχω μια βασική εικόνα Docker που έχω δημιουργήσει, ubuntu:base
, και δεν θέλω να χρειάζεται να την ξαναφτιάχνω κάθε φορά με ένα αρχείο Docker για να προσθέσω αρχεία σε αυτήν.
Θέλω να δημιουργήσω ένα σενάριο που εκτελείται από το μηχάνημα υποδοχής και δημιουργεί ένα νέο container χρησιμοποιώντας την εικόνα Docker ubuntu:base
και στη συνέχεια αντιγράφει αρχεία σε αυτό το container.
Πώς μπορώ να αντιγράψω αρχεία από τον κεντρικό υπολογιστή στο δοχείο;
Ο παρακάτω τρόπος είναι αρκετά άσχημος αλλά λειτουργεί.
docker run -i ubuntu /bin/bash -c 'cat > file' < file
Η λύση δίνεται παρακάτω,
root@123abc:/root# <-- get the container ID
cp thefile.txt /var/lib/docker/devicemapper/mnt/123abc<bunch-o-hex>/rootfs/root
Το αρχείο πρέπει να αντιγραφεί απευθείας στη θέση όπου βρίσκεται ο περιέκτης στο σύστημα αρχείων.
Απλώς αντιγράφω το αρχείο απευθείας από το σημείο όπου βρίσκεται το δοχείο από το μηχάνημα υποδοχής.
Για παράδειγμα:
Πρώτα βρείτε το αναγνωριστικό του εμπορευματοκιβωτίου:
root@**3aed62678d54**:/home#
Και στη συνέχεια από τον κεντρικό υπολογιστή, ας πούμε ότι το αρχείο βρίσκεται στον αρχικό κατάλογο:
root@saasdock:/home/dnepangue# cp cheering_nasa.gif /var/lib/docker/aufs/mnt/**3aed62678d54**a5df47a4a00a58bb0312009c2902f8a37498a1427052e8ac454b/home/
Πίσω στο δοχείο...
root@**3aed62678d54**:/home# ls cheering_nasa.gif