Como instalar docker e docker compose no Amazon Linux 2 rodando no EC2 ou instância do Lightsail?
Antes de seguir esse tutorial considere utilizar o AWS Fargate .
Para a execução deste tutorial será necessário um acesso ssh, se você estiver utilizando Windows, tente com o PuTTY ou ferramenta semelhante.
1. Primeiro passo é realizar o acesso ao sistema operacional via SSH, esse passo dependerá de como sua máquina foi configurada, deixo duas opções:
Com chave de acesso(recomendo, mais seguro)
ssh -i /caminho/ate/a/Chave.pem ec2-user@ec2-ip-address-ou-dns-name-aqui
OU
Sem chave de acesso:
ssh ec2-user@ec2-ip-address-ou-dns-name-aqui
2. Em seguida atualizar os pacotes já disponíveis na instância, para isso utilizaremos o comando yum
sudo yum update
3. Localize o pacote do Docker
sudo yum search docker
4. Instale o Docker com o comando abaixo:
sudo yum install docker
5. Adicione o usuário padrão “ec2-user” ao grupo de usuários “docker” para possibilitar a execução dos comandos Docker sem sudo.
sudo usermod -a -G docker ec2-user id ec2-user
6. habilitando a inicialização do Docker ao iniciar o sistema operacional
sudo systemctl enable docker.service
7. Inicializando o serviço do Docker
sudo systemctl start docker.service
8. Verificando o status do docker
sudo systemctl status docker.service
O retorno esperado seria algo assim
● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2021-09-08 05:03:52 EDT; 18s ago Docs: https://docs.docker.com Process: 3295 ExecStartPre=/usr/libexec/docker/docker-setup-runtimes.sh (code=exited, status=0/SUCCESS) Process: 3289 ExecStartPre=/bin/mkdir -p /run/docker (code=exited, status=0/SUCCESS) Main PID: 3312 (dockerd) Tasks: 9 Memory: 39.9M CGroup: /system.slice/docker.service └─3312 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/c... Sep 08 05:03:51 amazon.example.local dockerd[3312]: time="2021-09-08T05:03... Sep 08 05:03:51 amazon.example.local dockerd[3312]: time="2021-09-08T05:03... Sep 08 05:03:51 amazon.example.local dockerd[3312]: time="2021-09-08T05:03... Sep 08 05:03:51 amazon.example.local dockerd[3312]: time="2021-09-08T05:03... Sep 08 05:03:52 amazon.example.local dockerd[3312]: time="2021-09-08T05:03... Sep 08 05:03:52 amazon.example.local dockerd[3312]: time="2021-09-08T05:03... Sep 08 05:03:52 amazon.example.local dockerd[3312]: time="2021-09-08T05:03... Sep 08 05:03:52 amazon.example.local dockerd[3312]: time="2021-09-08T05:03... Sep 08 05:03:52 amazon.example.local systemd[1]: Started Docker Applicatio... Sep 08 05:03:52 amazon.example.local dockerd[3312]: time="2021-09-08T05:03... Hint: Some lines were ellipsized, use -l to show in full.
9. Para ver a versão do Docker
docker version
Resultado esperado é algo semelhante ao abaixo:
Client: Version: 20.10.13 API version: 1.41 Go version: go1.16.15 Git commit: a224086 Built: Thu Mar 31 19:20:32 2022 OS/Arch: linux/amd64 Context: default Experimental: true Server: Engine: Version: 20.10.13 API version: 1.41 (minimum version 1.12) Go version: go1.16.15 Git commit: 906f57f Built: Thu Mar 31 19:21:13 2022 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.13 GitCommit: 9cc61520f4cd876b86e77edfeb88fbcd536d1f9d runc: Version: 1.0.3 GitCommit: f46b6ba2c9314cfc8caae24a32ec5fe9ef1059fe docker-init: Version: 0.19.0 GitCommit: de40ad0
Precisa do docker-compose também?
Existem 2 opções, vou apresentar ambas:
Através do pip (recomendado)
sudo pip3 install docker-compose
OU
Instalando manualmente
wget https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) sudo mv docker-compose-$(uname -s)-$(uname -m) /usr/local/bin/docker-compose sudo chmod -v +x /usr/local/bin/docker-compose
Para verificar se a instalação ocorreu com sucesso, poder utilizar o comando para visualizar a versão do Docker Compose
docker-compose version
Resultado esperado é algo como:
docker-compose version 1.29.2, build unknown docker-py version: 5.0.3 CPython version: 3.7.10 OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
Bonus: Instalando o ctop
O ctop é uma daquelas ferramentas que te ajudam muito na gestão dos containers, trazendo métricas de múltiplos containers em tempo real.
$ sudo wget https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -O /usr/local/bin/ctop $ sudo chmod +x /usr/local/bin/ctop
ctop foi uma dica do meu amigo @michels , valeu!