Qual é a maneira atual de instalar o Docker em uma instância do AWS EC2 executando a AMI? Houve um anúncio do Docker Enterprise Edition e agora quero saber se alguma coisa mudou. Até agora, eu uso yum install docker
e recebo uma versão do Docker no 1.12.6, build 7392c3b/1.12.6
momento (03/03/2017). No entanto, o repositório do Docker no GitHub me diz que já existem versões mais recentes.
Lembro-me do repositório oficial do Docker (pacote) tendo um pacote chamado docker-engine
substituindo docker
há 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 ]
Portanto, é ou ainda será correto usar o acima para obter a versão estável mais recente do Docker nas instâncias do EC2 executando a AMI ou preciso extrair o pacote de outro lugar (e, em caso afirmativo, qual, CE ou EE)?
Respostas:
Para que o Docker seja executado na AWS AMI, siga as etapas abaixo (todas elas assumindo que você conectou a instância do EC2).
Atualize os pacotes em sua instância
[ec2-user ~]$ sudo yum update -y
Instalar o Docker
[ec2-user ~]$ sudo yum install docker -y
Iniciar o serviço Docker
[ec2-user ~]$ sudo service docker start
Adicione o usuário ec2 ao grupo de janelas de encaixe para poder executar comandos do Docker sem usar o sudo.
[ec2-user ~]$ sudo usermod -a -G docker ec2-user
Você poderá executar todos os comandos do docker sem precisar
sudo
. Depois de executar o 4º comando, eu precisava sair e fazer login novamente para que as alterações entrassem em vigor.fonte
A parte mais difícil de entender tudo isso foi o requisito de container-selinux. Apenas encontre a versão mais recente em http://mirror.centos.org/centos/7/extras/x86_64/Packages/ e instale-a primeiro. Além disso, as instâncias do EC2 podem não ter um gerador de entropia adequado; portanto,
haveged
pode ser necessário instalar.O restante é retirado de https://docs.docker.com/install/linux/docker-ce/centos/ com a adição de haveged e firewalld. Tudo isso deve ser feito como raiz de maneira
sudo
apropriada.Ative o SELinux modificando
/etc/sysconfig/selinux
para serEm seguida, reinicie sua instância emitindo
shutdown -r now
A execução
sudo docker version
deve render a partir do momento desta postagem ...fonte
Por https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html
Você pode ver o histórico em https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-ami-versions.html
fonte
Além da minha resposta anterior. Se você usa o Terraform, também criei um módulo Terraform que pode ser usado para criar um Docker Swarm
https://registry.terraform.io/modules/trajano/swarm-aws/docker
A diferença entre a abordagem que eu fiz anteriormente e a abordagem que estou fazendo atualmente com o módulo terraform é utilizar os pacotes Docker fornecidos pela AWS. Isso não inclui a janela de encaixe completa e o que não é, mas você não exige esses pacotes normalmente em um servidor.
Como estou usando o que a Amazon havia fornecido, não é mais a versão mais recente da 18.09, mas a versão 18.06. No entanto, a configuração é mais simples e eu não tenho que acompanhar o container-selinux.
A única dependência externa que eu uso é o EPEL para ser ocultada, porque você ainda precisa de uma boa fonte aleatória para alguns aplicativos.
Também contei com os grupos de segurança da AWS, em vez de configurar explicitamente o firewalld e usei a configuração do SELinux que é padronizada na imagem da AMI.
fonte