Como instalar Docker no Amazon Linux 2

⏱ Reading Time: 2 minutes

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.

ctop

$ 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!