Docker - Comment mettre à jour les images

J'ai lu que le panneau fonctionne avec des couches, de sorte que lors de la création d'un container avec un Dockerfile, vous commencez avec l'image de base, puis exécuter les commandes suivantes en rajouter une couche pour le conteneur, de sorte que si vous enregistrez l'état de ce nouveau conteneur, vous avez une nouvelle image. Il ya un couple de choses que je me demandais à ce sujet.

Si je commence à partir d'un Ubuntu de l'image, ce qui est assez gros et volumineux, car c'est un système complet, puis-je ajouter un peu d'outils et l'enregistrer comme une nouvelle image qui j'ai télécharger sur le hub. Si quelqu'un télécharge mon image, et qu'ils ont déjà un Ubuntu image sauvegardée dans leur images folder, est-ce à dire qu'ils peuvent ignorer le téléchargement Ubuntu puisqu'ils ont déjà l'image? Si oui, comment cela fonctionne quand je modifie des parties de l'image d'origine, ne Docker utilisation de ses données mises en cache pour appliquer de manière sélective les changements apportés à la Ubuntu image après il le charge?

2.) Comment puis-je mettre à jour une image que j'ai construit en modifiant le Dockerfile? - Je configurer un simple projet django avec cette Dockerfile:

FROM python:3.5

ENV PYTHONBUFFERED 1
ENV APPLICATION_ROOT /app
ENV APP_ENVIRONMENT L

RUN mkdir -p $APPLICATION_ROOT
WORKDIR $APPLICATION_ROOT
ADD requirements.txt $APPLICATION_ROOT
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ADD . $APPLICATION_ROOT

et utilisé pour créer l'image au début. Donc, chaque fois que je créer une boîte, il charge tous ces environment variables, si je reconstruction de la boîte complètement il réinstalle les forfaits et tous les extras. J'ai besoin d'ajouter une nouvelle variable d'environnement, j'ai donc ajouté à la partie inférieure de la Dockerfile, avec une variable de test:

ENV COMPOSE_CONVERT_WINDOWS_PATHS 1
ENV TEST_ENV_VAR TEST

Quand j'ai supprimer le conteneur et l'image, et de construire un nouveau conteneur, tout semble aller en conséquence, il me dit qu'il crée une nouvelle Étape 4 : ENV

COMPOSE_CONVERT_WINDOWS_PATHS 1
 ---> Running in 75551ea311b2
 ---> b25b60e29f18
Removing intermediate container 75551ea311b2

Si c'est comme quelque chose se perd dans certains de ces intermédiaires contenant des transitions. Est-ce la façon dont le système de mise en cache fonctionne, chaque nouvelle couche est un intermediate container? Donc, avec cela à l'esprit, comment voulez-vous ajouter un nouveau calque, faites-vous de toujours avoir à ajouter de nouvelles données à la base de la Dockerfile? Ou serait-il préférable de laisser le Dockerfile seul une fois que l'image est construite, et ne modifier que le container et construit une nouvelle image?

MODIFIER j'ai juste essayé d'installer une image, un paquet appelé bwawrik/bioinformatics, qui est une CentOS conteneur qui a un large éventail d'outils est installé.

Il a gelé la moitié du chemin, j'ai donc quitté et il a ensuite couru de nouveau pour voir si tout a été installé:

$ docker pull bwawrik/bioinformatics
Using default tag: latest
latest: Pulling from bwawrik/bioinformatics

a3ed95caeb02: Already exists
a3ed95caeb02: Already exists
7e78dbe53fdd: Already exists
ebcc98113eaa: Already exists
598d3c8fd678: Already exists
12520d1e1960: Already exists
9b4912d2bc7b: Already exists
c64f941884ae: Already exists
24371a4298bf: Already exists
993de48846f3: Already exists
2231b3c00b9e: Already exists
2d67c793630d: Already exists
d43673e70e8e: Already exists
fe4f50dda611: Already exists
33300f752b24: Already exists
b4eec31201d8: Already exists
f34092f697e8: Already exists
e49521d8fb4f: Already exists
8349c93680fe: Already exists
929d44a7a5a1: Already exists
09a30957f0fb: Already exists
4611e742e0b5: Already exists
25aacf0148db: Already exists
74da82504b6c: Already exists
3e0aac083b86: Already exists
f52c7e0ac000: Already exists
35eee92aaf2f: Already exists
5f6d8eb70885: Already exists
536920bfe266: Already exists
98638e678c51: Already exists
9123956b991d: Already exists
1c4c8a29cd65: Already exists
1804bf352a97: Already exists
aa6fe9359956: Already exists
e7e38d1250a9: Already exists
05e935c831dc: Already exists
b7dfc22c26f3: Already exists
1514d4797ffd: Already exists
Digest: sha256:0391808e21b7b5cc0eb44fc2dad0d7f5415115bdaafb4534c0b6a12efd47a88b
Status: Image is up to date for bwawrik/bioinformatics:latest

Donc définitivement installé le package en morceaux, pas tous d'un coup. Ces morceaux sont-ils, les différentes images?

OriginalL'auteur Horse O'Houlihan | 2017-01-12