2014-10-27 3 views
1

Я использую Dockerfiles, чтобы попытаться создать мои сборки автоматически. Я пытаюсь понять концепцию слоя. В моем файле Docker я уже добавляю версию Mono, которая мне нужна, и я пишу приложение C#, которое вызывает моно. Когда я разрабатываю приложение, я просто добавляю файлы src, которые мне нужны для изображения Docker, а затем запускайте контейнер. Поэтому каждый раз, когда я создаю новую сборку для своего приложения на C#, я в основном просто копирую новые файлы C#. Если в моем Dockerfile, это что-то простое, как это:создание изображения докеры с тем же именем

FROM centos 
// install mono 
ADD . /src 

при запуске сборки я

docker build -t="crystal/testapp" . 

при обновлении C# исходные файлы моей хост-машине, и я запустить команду докер сборки еще раз. Является ли это добавлением другого слоя к моему последнему изображению кристалла/testapp. Или он начинается с базы centos и просто создает совершенно новый образ, который заменяет мое старое изображение crystal/testapp? Глядя на размер моего изображения, кажется, что он не заменяет старый, а делает что-то еще, что я не уверен. Размер только относительно согласован, если я docker rmi hash перед каждой сборкой, которая кажется немного утомительной.

ответ

0

Если содержимое. изменение, докер начнется с базы centos. Существует новый слой, но он является дочерним элементом centos, а не вашим предыдущим слоем.