Каков текущий способ установки Docker на экземпляре AWS EC2, работающем под управлением AMI?Там было анонс Docker Enterprise Edition и теперь я хочу знать, изменилось ли что-нибудь.До сих пор я использовал yum install docker и сделайте так, чтобы версия Docker была настроена по адресу 1.12.6, build 7392c3b/1.12.6 прямо сейчас (3/3/2017). Однако, репозиторий Docker на GitHub говорит мне, что уже есть более новые версии.
Я помню, что в официальном репозитории Docker (package) был пакет с именем docker-engine заменяющий docker некоторое время назад, и теперь они, похоже, разделили пакет на docker-ce и docker-ee, где, например, "Docker Community Edition (Docker CE) не поддерживается в Red Hat Enterprise Linux". [Источник]
Итак, правильно ли по-прежнему использовать вышеуказанное для получения последней стабильной версии Docker на экземплярах EC2, работающих под управлением AMI, или мне нужно извлечь пакет откуда-то еще (и если да, то какой, CE или EE)?
Чтобы запустить Docker на AWS AMI, вам следует выполнить следующие действия (все они предполагают, что у вас есть ssh для подключения к экземпляру EC2).
Обновите пакеты на вашем экземпляре
[ec2-user ~]$ sudo yum update -y
Установить Docker
[ec2-user ~]$ sudo yum install docker -y
Запустите службу Docker
[ec2-user ~]$ sudo service docker start
Добавьте ec2-user в группу docker, чтобы вы могли выполнять команды Docker без использования sudo.
[ec2-user ~]$ sudo usermod -a -G docker ec2-user
Затем вы должны иметь возможность запускать все команды docker, не требуя sudo. После выполнения 4-й команды мне действительно нужно было выйти из системы и снова войти в систему, чтобы изменения вступили в силу.
Самой сложной частью для понимания всего этого было требование к контейнеру-selinux. Просто найдите последнюю версию в http://mirror.centos.org/centos/7/extras/x86_64/Packages/ и установите это в первую очередь. Кроме того, экземпляры EC2 могут не иметь надлежащего генератора энтропии, поэтому haveged возможно, потребуется установить.
В дополнение к моему предыдущему ответу. Если вы используете Terraform, я также создал модуль Terraform, который можно использовать для создания Docker Swarm
Разница между подходом, который я использовал ранее, и подходом, который я использую в настоящее время работа с модулем terraform заключается в использовании пакетов Docker, предоставляемых AWS. Это не включает в себя полный docker-compose и что-то еще, но вам обычно не требуются эти пакеты на сервере.
Поскольку я использую ту, которую предоставил Amazon, это уже не последняя версия 18.09, а версия 18.06. Тем не менее, настройка проще, и мне не нужно играть в догонялки с container-selinux.
Единственная внешняя зависимость, которую я использую, - это EPEL для получения haveged, потому что вам все еще нужен хороший случайный источник для некоторых приложений.
Я также полагался на группы безопасности AWS, а не на явную настройку firewalld, и использовал параметр SELinux, который установлен по умолчанию в образе AMI.
Вопрос в том, смогу ли я продолжать делать это таким образом. Как уже упоминалось, он установит мне Docker с версией 1.12, которая уже является одним, если не более, незначительным обновлением версии после последней стабильной версии (1.13, до CE / EE), и мне интересно, связано ли это с обычной задержкой обновления репозитория или потому, что руководство и пакет просто устарели, что требует некоторой замены работа, проделанная мной (например, каким-то образом получить Docker из их собственного репозитория?). Также относительно последнего объявления EE, которое может что-то изменить…
Если это реальное решение этой проблемы, то мне действительно немного грустно. Однако, спасибо за подсказку, у меня еще не было слишком большого опыта работы с EC2, чтобы самостоятельно прийти к такому выводу. Я всегда думал, что лучше всего использовать AMI, потому что это (должно быть) самый обновленный и адаптированный образ, касающийся виртуализации EC2.
Все пакеты обновлены, ядро. Однако я нахожу Ubuntu намного проще для установки программного обеспечения и общей поддержки, ресурсов Amazon Linux мало, поэтому сложные вещи становятся еще более сложными.
@MichaelHampton Amazon Linux отлично подходит для использования ECS. Он предварительно настроен для использования ECS, и базовая ОС в этом случае не имеет большого значения.