Pesquisa de sites

Instalar Docker e Compose no CentOS 8 | RHEL 8


Neste guia, vamos guiá-lo pelos passos para instalar o Docker CE no CentOS 8 | RHEL 8. Vamos também abordar como instalar o Docker Compose no Linux RHEL 8/CentOS 8. O Docker não é oficialmente suportado no RHEL 8, pois foi substituído pelas ferramentas da Red Hat – buildah e podman. Pode saber mais sobre as novas funcionalidades presentes na versão do Linux RHEL 8.

  • Red Hat Enterprise Linux 8 (RHEL 8) Novas Funcionalidades e Análise

Mas e se você usa Docker todos os dias e não pode mudar para buildah e podman imediatamente? Não se preocupe, pois existe uma forma de instalar o Docker e o Docker Compose no RHEL 8/CentOS 8. O Docker é uma ferramenta que permite criar, implementar e executar as suas aplicações em containers. Os containers permitem que um programador empacote uma aplicação com as suas dependências e a distribua como um único pacote. Os containers são frequentemente utilizados em ambientes de Microserviços.

Componentes/Terminologia do Docker

Existe uma série de jargões específicos do Docker que precisamos esclarecer antes de nos aprofundarmos na instalação e nos exemplos de utilização. Abaixo estão as terminologias mais comuns utilizadas no ecossistema Docker.

  • Daemon do Docker: Isto também é chamado de Docker Engine, é um processo em segundo plano que corre no sistema anfitrião responsável pela criação e execução de contentores.
  • Docker Client: Esta é uma ferramenta de linha de comandos usada pelo utilizador para interagir com o daemon do Docker.
  • Imagem Docker: Uma imagem é um ficheiro imutável que é essencialmente uma fotografia instantânea de um contentor. Uma imagem docker possui um sistema de ficheiros e dependências de aplicação necessárias para executar aplicações.
  • Contêiner Docker: Esta é uma instância em execução de uma imagem Docker com uma aplicação e suas dependências. Cada contêiner tem um ID de processo único e está isolado dos outros contêineres. A única coisa que os contêineres partilham é o Kernel.
  • Registo Docker: Esta é uma aplicação responsável por gerir o armazenamento e a entrega de imagens de contêineres Docker. Pode ser privada ou pública.

Instalar o Docker CE no CentOS 8 | RHEL 8

Até agora cobrimos a introdução ao Docker e as terminologias. Devemos estar prontos para instalar o Docker CE no RHEL 8/CentOS 8. Vamos começar com a instalação do Docker e, em seguida, do Docker Compose.

Existem duas edições do Docker disponíveis.

  • Edição Comunitária (CE): ideal para desenvolvedores individuais e pequenas equipas que queiram começar a usar o Docker e experimentar aplicações baseadas em containers.
  • Enterprise Edition (EE): Concebida para equipas de desenvolvimento empresarial e de TI que constroem, disponibilizam e executam aplicações críticas para os negócios em produção em grande escala.

A Docker Enterprise Edition requer uma licença ativa para ser utilizada. Neste guia, iremos instalar o Docker CE no RHEL 8. Vamos adicionar o repositório do Docker antes de o podermos instalar.

### CentOS 8 ###
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

### RHEL 8 ###
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

Este comando irá transferir o ficheiro do repositório Docker para /etc/yum.repos.d/docker-ce.repo. Vamos atualizar o cache do índice RPM.

### CentOS 8 ###
$ sudo yum makecache 
CentOS Linux 8 - AppStream                                                                                                                                             23 kB/s | 4.3 kB     00:00
CentOS Linux 8 - BaseOS                                                                                                                                                20 kB/s | 3.9 kB     00:00
CentOS Linux 8 - Extras                                                                                                                                               9.2 kB/s | 1.5 kB     00:00
Docker CE Stable - x86_64                                                                                                                                             291 kB/s |  19 kB     00:00
DigitalOcean Droplet Agent                                                                                                                                             51 kB/s | 3.3 kB     00:00
Metadata cache created.

### RHEL 8 ###
$ sudo yum makecache 
Updating Subscription Management repositories.
Docker CE Stable - x86_64                                                                                                                                             14 kB/s | 3.8 kB     00:00    
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                                                                              33 kB/s | 2.8 kB     00:00    
Red Hat Ansible Engine 2.8 for RHEL 8 x86_64 (RPMs)                                                                                                                   29 kB/s | 2.4 kB     00:00    
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                                                                                 30 kB/s | 2.4 kB     00:00    
Red Hat Satellite Tools 6.6 for RHEL 8 x86_64 (RPMs)                                                                                                                  29 kB/s | 2.1 kB     00:00    
Metadata cache created.

Pode ser necessário desinstalar todas as versões antigas do Docker juntamente com as dependências associadas. Também desinstale o Podman e as dependências associadas, se já estiverem instalados.

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  podman \
                  runc

Por fim, instale o Docker CE executando o comando abaixo no seu terminal.

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Se tiver problemas de dependências com o Podman, permita a eliminação.

sudo yum install docker-ce --allowerasing

Concorde em instalar pressionando a tecla y no seu teclado:

...
Transaction Summary
================================================================================================================================================================================================
Install  12 Packages

Total download size: 93 M
Installed size: 389 M
Is this ok [y/N]: y

Também importe a chave GPG.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                            51 MB/s |  93 MB     00:01
Docker CE Stable - x86_64                                                                                                                                        44 kB/s | 1.6 kB     00:00
Importing GPG key 0x621E9F35:
 Userid     : "Docker Release (CE rpm) <[email >"
 Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
 From       : https://download.docker.com/linux/centos/gpg
Is this ok [y/N]: y

Inicie e habilite o serviço Docker para iniciar na arranque.

$ sudo systemctl enable --now docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

O estado do serviço Docker deve indicar que está a funcionar.

$ systemctl status  docker

O grupo docker é criado, mas nenhum utilizador é adicionado ao grupo. Adicione o seu utilizador a este grupo para executar comandos docker sem sudo

$ sudo usermod -aG docker $USER
$ newgrp docker
$ id $USER
uid=1000(jmutai) gid=1000(jmutai) groups=1000(jmutai),10(wheel),984(docker)

Efetue logout e login novamente para usar o Docker sem sudo. A versão do Docker instalada pode ser verificada com:

docker version

Fazer pull da imagem Docker

O último passo é testar a sua instalação descarregando um contêiner de teste do Docker.

$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
8e402f1a9c57: Pull complete 
Digest: sha256:644fcb1a676b5165371437feaa922943aaf7afcfa8bfee4472f6860aad1ef2a0
Status: Downloaded newer image for alpine:latest

$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Listar imagens descarregadas.

$ docker images
 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
 alpine              latest              5cb3aa00f899        2 days ago          5.53MB
 hello-world         latest              fce289e99eb9        2 months ago        1.84kB

Verifique se o Docker CE está a funcionar corretamente executando o contêiner alpine a partir da imagem descarregada.

$ docker run -it --rm alpine /bin/sh
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
v3.15.4-87-g89e29fdace [http://dl-cdn.alpinelinux.org/alpine/v3.15/main]
v3.15.4-87-g89e29fdace [http://dl-cdn.alpinelinux.org/alpine/v3.15/community]
OK: 9754 distinct packages available
/ # exit

Executar contentor olá mundo

$ docker run -it --rm hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Instalar o Docker Compose no CentOS 8 | CentOS 8

Temos o Docker instalado e a funcionar, agora vamos mudar o foco para o Docker Compose. O Docker Compose é uma ferramenta utilizada para definir e executar aplicações Docker com múltiplos contêineres.

Os serviços da aplicação são configurados utilizando um ficheiro Compose. Ao contrário de executar comandos docker, apenas é necessário um único comando para criar e iniciar todos os serviços da sua configuração. O Docker Compose é uma excelente ferramenta para ambientes de desenvolvimento, teste e staging, bem como para fluxos de trabalho de CI.

Siga o nosso guia separado sobre a instalação da versão mais recente do Docker Compose no Linux.

  • Instalar o Docker Compose no Linux

Para manter este guia breve, não vamos aprofundar no uso do Docker Compose. Recomendo que consulte a documentação oficial do Docker e a documentação do Docker Compose para saber mais.

Instalar interface Docker – Opcional

Se precisar de uma interface de gestão do Docker que permita gerir facilmente os seus diferentes hosts e containers Docker, experimente o Portainer. É fácil de instalar e de usar.

  • Como instalar o Portainer, gestor de interface Docker

Monitorizar contentores Docker

A monitorização de containers Docker pode ser realizada utilizando ferramentas de monitorização como Netdata, Ctop ou Prometheus e Grafana. Os guias abaixo devem ser úteis.

  • Ctop – Comando top para métricas de contêineres
  • Como Instalar o Netdata no RHEL 8/CentOS 8
  • Instalar o registo Docker Harbor no Linux