7 mins

Como instalar o Docker e Docker Compose no Ubuntu 22.04

Neste tutorial, iremos juntos realizar a instalação do Docker e Docker Compose no Ubuntu 22.04. Com estas ferramentas seremos capazes de criar ambientes para realizar nossos testes localmente.

1. Introdução

O Docker simplifica o processo de gerenciamento de processos de aplicação em containers. Embora os containers sejam semelhantes às máquinas virtuais de certas maneiras, eles são mais leves em recursos. Isso permite que os desenvolvedores dividam um ambiente de aplicação em vários serviços isolados.

Para aplicações que dependem de vários serviços, orquestrar todos os containers para inicializar, se comunicar e desligar juntos pode rapidamente se tornar complicado. O Docker Compose é uma ferramenta que permite executar ambientes de aplicação multi-container com base em definições definidas em um arquivo YAML. Ele usa definições de serviço para construir ambientes totalmente personalizáveis com vários containers que podem compartilhar redes e volumes de dados.

Neste guia, vamos juntos instalar o Docker em conjunto com Docker Compose em um servidor Ubuntu 22.04.

2. Pré-requisitos

Pode parecer bastante óbvio, e é por sinal. Nosso único pré-requisito é uma máquina local ou remota que contenha o Ubuntu 22.04 com um usuário non-root com acesso ao sudo.

Dito isso vamos a instalação do Docker.

3. Instalando o Docker

O pacote de instalação do Docker disponível no repositório oficial do Ubuntu pode não ser a versão mais recente.

Para garantir nosso acesso a versão mais recente, instalaremos o Docker a partir do repositório oficial do Docker.

Para isso, adicionaremos uma nova fonte de pacotes à nossa lista de fontes do apt, adicionaremos a chave GPG do Docker para garantir que os downloads sejam válidos e, em seguida, instalaremos o pacote.

Primeiro, vamos atualizar a lista de pacotes do repositório do Ubuntu:

$ sudo apt update

Em seguida, instale alguns pacotes pré-requisitos que permitem que o apt use pacotes por HTTPS:

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

Então, adicione a chave GPG para o repositório oficial do Docker em seu sistema:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Adicione o repositório do Docker às fontes do APT:

$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Atualize sua lista existente de pacotes novamente para que a inclusão seja reconhecida:

$ sudo apt update

Vamos nos certificar de que iremos a instalar a partir do repositório Docker em vez do repositório padrão do Ubuntu:

$ apt-cache policy docker-ce

Você visualizará uma saída similar a esta, mas é possível que o número da versão do Docker seja diferente.

docker-ce:
  Installed: (none)
  Candidate: 5:23.0.1-1~ubuntu.22.04~jammy
  Version table:
     5:23.0.0-1~ubuntu.22.05~jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
     5:20.10.23~3-0~ubuntu-jammy 500
        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages

Perceba que o docker-ce não está instalado, mas o pacote candidato para instalação vem do repositório Docker para o Ubuntu 22.04 (jammy).

Por último, realize a instalação do Docker:

$ sudo apt install docker-ce

Após a instalação do Docker, o daemon foi iniciado e o processo habilitado para iniciar automaticamente com o sistema. Para verificar se ele está em execução, execute o comando a seguir:

$ sudo systemctl status docker

A saída deverá ser similar à seguinte, indicando que o serviço está ativo e em execução:

Output
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-03-08 19:18:31 UTC; 40s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 780 (dockerd)
      Tasks: 71
     Memory: 77.2M
        CPU: 340ms
     CGroup: /system.slice/docker.service
             └─7854 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Ao final da instalaçaão do Docker, além do serviço Docker (daemon), também teremos acesso ao cli do docker. Isso significa que podemos gerenciar imagens, contêineres e outros recursos do Docker usando a interface de linha de comando, porém restrita apenas ao usuário root, ou por meio de um usuário com acesso ao sudo.

3.1. Executando o docker sem precisar de acesso sudo

Por padrão, o comando docker só pode ser executado pelo usuário root ou por um usuário no grupo docker, que é automaticamente criado durante o processo de instalação do Docker. Se você tentar executar o comando docker sem prefixá-lo com sudo ou sem estar no grupo docker, veremos um erro semelhante a este:

docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.

Para resolvermos esse problema e não precisar do sudo vamos adicionar nosso usuário ao grupo docker:

$ sudo usermod -aG docker ${USER}

Para aplicar a inscrição ao grupo, digite o seguinte comando:

$ su - ${USER}

Vai ser solicitado que você digite a senha para o seu usuário para continuar.

Após inserir a senha corretamente vamos verificar se agora fazemos parte do grupo de usuários docker com o seguinte comando:

$ groups

Veremos algo semelhante:

dukefs sudo lxd docker

Se você precisar adicionar um usuário ao grupo docker com o qual você não está conectado, declare explicitamente o nome de usuário usando:

$ sudo usermod -aG docker nome_do_usuario

Excelente, chegamos ao final da etapa de instalação do Docker. Com isso podemos executar o dockersem necessidade do sudo:

$ docker ps

Teremos com este comando a seguinte saída:

CONTAINER ID   IMAGE                           COMMAND        CREATED        STATUS        PORTS

Vamos seguir adiante e realizar a instalação do Docker Compose.

4. Instalando o Docker Compose

Para obter a versão mais estável e atualizada do Docker Compose, é importante que você acesse o repositório no Github e verifique qual é a versão mais recente disponível na página de releases.

Vale ressaltar que o Docker Compose é uma ferramenta que permite definir e executar aplicativos Docker de vários contêineres, de forma que eles possam ser executados de maneira coordenada e facilmente gerenciados.

No momento em que este texto foi escrito, a versão mais atual e estável do Docker Compose é a 2.16.0. Para baixá-la, basta utilizar o seguinte comando:

$ mkdir -p ~/.docker/cli-plugins/
$ curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose

Em seguida, vamos defir as permissões corretas para que o comando do docker compose possa ser executado:

$ chmod +x ~/.docker/cli-plugins/docker-compose

Para verificar se a instalação foi concluída com êxito, podemos executar o comando abaixo:

$ docker compose version

Iremos obter uma saída similar a esta, mas é possível que o número da versão do Docker Compose seja diferente.

Docker Compose version v2.16.0

Com isso finalizamos a instalação do Docker Compose.

Conclusão

Chegando ao final de mais um artigo, podemos concluir que o Docker é uma ferramenta importante no gerenciamento de processos de aplicação em containers, e o Docker Compose facilita a orquestração de ambientes de aplicação multi-container com base em definições definidas em um arquivo YAML.

Este guia apresentou um passo a passo para instalar o Docker e o Docker Compose em um servidor Ubuntu 22.04, destacando os pré-requisitos necessários e mostrando como instalar o Docker a partir do repositório oficial do Docker.

Com estas ferramentas, nós desenvolvedores poderemos gerenciar nossos ambientes de desenvolvimento com mais eficiência.


E é isso por hoje, pessoal!

Chegamos ao final de mais um artigo, espero que tenha sido útil e que você tenha aprendido algo novo.

Caso tenha alguma dúvida, comentário ou tenha encontrado algum erro, por favor, envie-me um email. Ficarei feliz em ouvir de você.

Se desejar receber novos artigos diretamente em seu e-mail, por favor, assine a nossa Newsletter. E se você já é um assinante, muito obrigado!

Aproveito e deixo um convite para nos conectarmos no Twitter e LinkedIn.

👋 Obrigado por ler até o final e até o próximo artigo !!!

Turbine a sua caixa de entrada

Junte-se a mais de 0 desenvolvedores inscritos

Talvez você possa curtir