2015-10-03 2 views
5

Мы можем создавать изображения Docker, а все они нажимают на концентратор без файла Docker. Почему это полезно, чтобы иметь файл Docker? Каковы преимущества этого? Создание докер-файла - это процесс с высоким потреблением времени и может создаваться только человеком. Я хотел бы знать, в чем основное отличие между базовым изображением на основе изображения и изображением на основе Dockerfile.Преимущества файла Docker

+0

Возможный дубликат [Dockerfile или Registry? Какая из них является предпочтительной стратегией распространения?] (Http://stackoverflow.com/questions/18029045/dockerfile-or-registry-which-is-the-preferred-strategy-for-distribution) –

ответ

3

Dockerfile используется для автоматизации работы путем указания всего шага, который мы хотим на изображении докера.

Dockerfile представляет собой текстовый документ, который содержит все команды, пользователь может позвонить по командной строке, чтобы собрать изображение. Использование docker пользователи сборки могут создавать автоматическую сборку, которая последовательно выполняет несколько команд командной строки .

Да, мы можем создавать изображения Docker, но каждый раз, когда мы хотим внести какие-либо изменения, вам нужно вручную изменить и протестировать и нажать.

или если вы используете Dockerfile с dockerhub, то он будет автоматически перестраиваться и вносить изменения при каждой модификации, и если что-то не так, то перестройка завершится неудачно.

Преимущества Dockerfile

  • Dockerfile является автоматизированный сценарий Docker изображений
  • Создание изображения вручную усложнится, если вы хотите испытать такую ​​же установку на другом аромате OS, то вы должны создать изображение для всех но небольшим изменением в докер-файле вы можете создавать образы для различного аромата.
  • У него простой синтаксис изображения, и многие из них автоматически меняются, что займет больше времени при выполнении вручную.
  • Dockerfile имеет систематический шаг, который может быть понятен другими легко и просто, чтобы узнать, какая точная конфигурация изменилась в базовом изображении.

Преимущество Dockerfile с dockerhub

  • Docker Hub обеспечивают частное хранилище для Dockerfile.
  • Dockerfile может совместно использовать команду и организацию.
  • Автоматического изображения строит
  • Webhooks, которые прикреплены к репозиториям, которые позволяют инициировать событие, когда изображение или обновленный образом помещаются в хранилище
  • мы можем поставить Dockerfile на Github или Bitbucket

разница между совершенным изображением и изображением Dockerfile

совершенного изображением: это зафиксировать изменения или настройки файла контейнера в новом изображении.

Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 
Create a new image from a container's changes 

    -a, --author=  Author (e.g., "John Hannibal Smith <[email protected]>") 
    -c, --change=[]  Apply Dockerfile instruction to the created image 
    --help=false  Print usage 
    -m, --message=  Commit message 
    -p, --pause=true Pause container during commit 

Это хороший вариант для отладки контейнера и экспорта изменились установки в другой image.but докер предлагают использовать dockerfile see here или мы можем сказать, совершить это версионирование грузчиком или резервного копирования образа.

Операция фиксации не включает данные, содержащиеся в томах , смонтированных внутри контейнера.

По умолчанию, контейнер, который был зафиксирован, и его процессы будут приостановлены, пока изображение будет зафиксировано. Это уменьшает вероятность того, что столкнулся с повреждением данных в процессе создания фиксации . Если это поведение нежелательно, установите для параметра «p» значение false.

основе Dockerfile изображения:

всегда использовать базовый образ для создания нового образа. предположим, что если вы внесли какие-либо изменения в файл dockerfile, тогда он будет применять все шаги докер-файла на новом изображении и создать новое изображение. но использовать одно и то же изображение.

С моей точки зрения, мы должны использовать dockerfile, который имеет все шаги, которые мы хотим на изображении, но если мы создадим образ из фиксации, мы должны документировать все изменения, которые мы сделали, которые могут потребоваться, если мы хотим создать новое изображение и мы можем сказать, что файл dockerfile - это документация изображения.

+0

** Вопрос **: Если я нажму новую версию своего изображения на Docker Hub, следует ли переписать 'Dockerfile', чтобы отразить эти изменения? Меня беспокоит, что если кто-то вытащит «Dockerfile» из моего репозитория Github, они могут не получить самую последнюю версию изображения. – chipoglesby

2

Преимущество состоит в том, что, даже если у вас нет общего реестре изображений, к которому вы можете подталкивать изображения, вы все равно можете обмениваться изображениями с помощью «рецепта» (Dockerfile used by docker build), который составляет всего пару КБ текст и может быть легко передан (легкий и маленький).

Этот декларативный формат гарантирует, что вы сможете восстановить идентичное изображение и обеспечить воспроизводимый результат.

+1

Добавление в VonC: Наличие Dockerfile позволяет вам проверить, что вы получаете (в некоторой степени). Вы не должны доверять всем изображениям, которые находятся на докере-хабе. – christian

0

Docker совершает

Использования Docker фиксации команды подхода к созданию новых образов является ошибками, одна нужно помнить и обновлять изображение для небольших изменений и совершать каждый раз.

Dockerfile

  • Dockerfile предоставляет возможность автоматизировать все этапы с набором директив, которые получают казненные во время сборки (команды Docker сборки см), чтобы создать окончательное изображение вместе с фиксацией изображения.

  • Dockerfile используется везде, все настроено и готово к работе.

  • Dockerfile может использоваться другими пользователями и легко обновляться другими пользователями. It позволяет легко и легко изменить изображение в зависимости от требований. как защита от затвердевания, добавление или обновление сведений о пользователе и т. Д.

Смежные вопросы