Qual é a maneira atual de instalar o Docker em uma instância do AWS EC2 executando o AMI?Tem havido Um anúncio do Docker Enterprise Edition e agora quero saber se algo mudou.Até agora, eu tenho usado yum install docker e obter um Docker versionado em 1.12.6, build 7392c3b/1.12.6 agora (3/3/2017). Entanto, o repositório Docker no GitHub diz-me que já existem lançamentos mais recentes.
Lembro-me do repositório Docker (pacote) oficial com um pacote chamado docker-engine substituicao docker algum tempo atrás e agora eles parecem dividir o pacote em docker-ce e docker-ee, onde, por exemplo, "Docker Community Edition (Docker CE) não é suportado no Red Hat Enterprise Linux." [Fonte]
Então é ou ainda será correto usar o acima para obter a versão mais recente do Docker estável em instâncias EC2 executando o AMI ou preciso puxar o pacote de outro lugar (e em caso afirmativo qual, CE ou EE)?
Para que o Docker seja executado no AWS AMI, você deve seguir as etapas abaixo (todas supondo que você tenha ssh na instância EC2).
Atualize os pacotes em sua instância
[ec2-user ~]$ sudo yum update -y
Instalar Docker
[ec2-user ~]$ sudo yum install docker -y
Inicie o serviço Docker
[ec2-user ~]$ sudo service docker start
Adicione o usuário ec2 ao grupo docker para que você possa executar comandos Docker sem usar sudo.
[ec2-user ~]$ sudo usermod -a -G docker ec2-user
Você deve então ser capaz de executar todos os comandos do docker sem exigir sudo. Depois de executar o 4º comando, precisei fazer logout e fazer login novamente para que a alteração entrasse em vigor.
A parte mais difícil de descobrir tudo isso foi o requisito container-selinux. Basta encontrar a versão mais recente em http://mirror.centos.org/centos/7/extras/x86_64/Packages/ e instale isso primeiro. Além disso, as instâncias EC2 podem não ter um gerador de entropia adequado haveged pode precisar ser instalado.
Em seguida, reinicie sua instância emitindo shutdown -r now
Execucao sudo docker version deve render a partir do momento desta postagem...
Cliente: Versão: 18.03.0-CE versão da API: 1.37 versão Go: GO1.9.4 git commit: 0520e24 construído: qua 21 de Março 23:09:15 2018 OS/Arch: linux/amd64 Experimental: false Orchestrator: swarmServer: Engine: Version: 18.03.0-ce versão da API: 1.37 (versão mínima 1.12) versão Go: GO1.9.4 git commit: 0520e24 construído: Qua Mar 21 23:13:03 2018 os/Arch: Linux/amd64 experimental: false
A diferença entre a abordagem que fiz anteriormente e a abordagem que sou actualmente fazer com o módulo terraform é utilizar os pacotes Docker fornecidos pela AWS. Isso não inclui o docker-compose completo e o que não, mas você não precisa desses pacotes normalmente em um servidor.
Como estou usando o que a Amazon forneceu, não é mais a versão 18.09 mais recente, mas a versão 18.06. No entanto, a configuração é mais simples e não preciso jogar catch up para container-selinux.
A única dependência externa que eu uso é EPEL para ter haveged porque você ainda precisa de uma boa fonte aleatória para alguns aplicativos.
Também confiei nos grupos de segurança da AWS em vez de configurar explicitamente o firewalld e usei a configuração SELinux que é padronizada na imagem AMI.
A questão é se posso continuar a fazê-lo assim. Como já mencionado, ele me instalará Docker versionado em 1.12, que já é uma, senão mais, atualizações de versão menores por trás da versão estável mais recente (1.13, antes de CE / EE) e me pergunto se isso se deve ao atraso usual da atualização do repositório ou porque o guia e o pacote simplesmente estão desatualizados, o que requer algum trabalho de substituição feito por mim (por exemplo, de alguma forma, obtendo Docker de seu próprio repositório?). Também sobre o último anúncio EE que pode mudar alguma coisa…
Se essa é a verdadeira solução para este problema, isso me deixa um pouco triste. No entanto, obrigado pela dica, ainda não tive muita experiência com o EC2 para chegar a essa conclusão sozinho. Eu sempre pensei que é o melhor usar AMI porque (deveria ser) é a imagem mais atualizada e adaptada em relação à virtualização EC2.
Os pacotes são todos atualizados, o kernel. No entanto, acho o Ubuntu muito mais fácil para instalação de software e suporte geral, existem poucos recursos do Amazon Linux, então as coisas difíceis são ainda mais difíceis.
@ MichaelHampton o Amazon Linux é bom para o uso do ECS. É pré-configurado para uso ECS, e o sistema operacional subjacente não importa muito nesse caso.