Разница между Докером и AMI

В контексте AWS:

AMI используется для упаковки программного обеспечения и может быть развернут на EC2. Docker также можно использовать для упаковки программного обеспечения, а также его можно развернуть в EC2.

В чем разница между ними и как выбрать между ними?


person Schleir    schedule 16.01.2017    source источник
comment
С технической точки зрения вы не можете развернуть образ/контейнер докера на EC2 без AMI. Или лучше экземпляр EC2 существует только в том случае, если вы сначала предоставите AMI. Docker будет работать на этом: EC2/AMI.   -  person mariotti    schedule 12.05.2019


Ответы (3)


AMI — это образ. Это целая машина, с которой вы можете запускать новые экземпляры. Докер-контейнер более легкий и портативный. Докер-контейнер должен быть переносимым между провайдерами, а AMI — нет (легко).

AMI — это в основном образы виртуальных машин. Контейнеры Docker — это упакованные мини-образы, которые запускаются на некоторой виртуальной машине в изолированной среде.

person Jerry Vines    schedule 17.01.2017
comment
Разве не следует сравнивать AMI и образы докеров? - person Dror; 02.11.2018
comment
Я согласен с @Dror, но более того (в AWS) у вас не может быть никакой формы докера без предварительного AMI! Каким-то образом докер можно транспортировать тогда и только тогда, когда это позволяет AMI ;) Есть еще одна небольшая проблема. Аппаратное обеспечение определяется AMI, а не контейнером/образом докера. Упс... даже нет, аппаратное обеспечение обычно определяется EC2 или fargate, но им обоим нужен AMI. - person mariotti; 12.05.2019
comment
Дополнительный вопрос — безопасность. Это открывает гораздо больше альтернативных вопросов, и это сильно зависит от вашей настройки. Но тенденция, которую я заметил сегодня, заключается в том, что образы докеров обычно НЕ имеют встроенной защиты. В то время как AMI может и должен иметь встроенную минимальную безопасность. В AWS у вас есть дополнительные инструменты для защиты вашей системы, но, например, EC2 с заданным AMI, на котором запущен образ докера, может в значительной степени полагаться на безопасность AMI. Как версии SSL/SSH. - person mariotti; 12.05.2019

Эта ссылка содержит подробную информацию о различиях между Docker и AMI: - https://forums.docker.com/t/how-would-you-дифференцировать-между-docker-vs-ec2-image/1235/2

person Vinay    schedule 17.01.2017
comment
Хотя ваш ответ на 100% правильный, он также может стать на 100% бесполезным, если цель ссылки исчезнет. Пожалуйста, отредактируйте свой ответ и оставьте ссылку в качестве первоисточника. - person Martin Grey; 16.10.2020

Несмотря на то, что это не отвечает на вопрос напрямую, но дает некоторое представление о том, как они используются.

Один из подходов заключается в том, что вы запускаете инстансы EC2 с Amazon AMI (или любым AMI), а затем запускаете контейнеры Docker (со всеми зависимостями) поверх него. При таком подходе образ докера со временем раздувается, и со временем происходит дрейф контейнера. Кроме того, время, необходимое для запуска и работы приложения, больше, поскольку Ec2 должен быть загружен, а докер должен запустить ваш сервер приложений.

Другой подход — «неизменяемые экземпляры Ec2». При таком подходе вы используете Amazon AMI в качестве базы, устанавливаете все зависимости (используете сценарии оболочки или Ansible) и запекаете их в AMI. Мы используем Hashicorp Packer, который является удивительным инструментом. Здесь время, необходимое для запуска и запуска приложения, значительно сокращается, поскольку все зависимости (java8, tomcat, war-файл и т. д.) уже установлены в AMI.

В случае производственного использования используйте Packer для создания AMI и используйте Terraform для запуска облачных ресурсов для использования этого AMI. Свяжите все это вместе в конвейере Дженкинса.

person VimalKumar    schedule 15.11.2018