J'essaie d'apprendre les tenants et les aboutissants de Docker, et la perspective de sauvegarder une image me trouble.
J'ai exécuté l'image de base d'Ubuntu, installé Anaconda Python et quelques autres choses ... alors quel est le meilleur moyen de sauvegarder mes progrès? Enregistrer, valider, exporter?
Aucun de ceux-ci ne semble fonctionner de la même manière que VirtualBox, qui présente un fichier d’état de sauvegarde évident pour votre machine virtuelle.
La méthode habituelle consiste au moins à utiliser un docker commit
: qui gèle l’état de votre conteneur dans une nouvelle image.
Remarque: Comme commenté par anchovylegend , ce n'est pas la meilleure pratique et utiliser un fichier Docker vous permet de modéliser de manière formelle le contenu de l'image et de vous permettre de reconstruire/rétablir son état initial.
Vous pouvez ensuite répertorier cette image localement avec docker images
et l'exécuter à nouveau.
Exemple:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker commit c3f279d17e0a svendowideit/testimage:version3
f5283438590d
$ docker images
REPOSITORY TAG ID CREATED SIZE
svendowideit/testimage version3 f5283438590d 16 seconds ago 335.7 MB
Après cela, si vous avez déployé un serveur de registre , vous pouvez envoyer votre image sur ce serveur.
Utilisez un fichier Docker pour ce type de scénario.
Un exemple de cas pour une image Ubuntu avec MongoDB:
FROM ubuntu
MAINTAINER Author name
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
RUN echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | tee -a /etc/apt/sources.list.d/10gen.list
RUN apt-get update
RUN apt-get -y install apt-utils
RUN apt-get -y install mongodb-10gen
#RUN echo "" >> /etc/mongodb.conf
CMD ["/usr/bin/mongod", "--config", "/etc/mongodb.conf"]
Voir également Meilleures pratiques pour l'écriture de Dockerfiles.