Docker é uma ferramenta popular para o desenvolvimento e implantação de software em pacotes conhecidos como contêineres. Ubuntu é uma das distribuições mais populares do Linux e é um sistema operacional suportado pelo Docker.

A instalação do Docker no Ubuntu cria uma plataforma ideal para seus projetos de desenvolvimento, usando máquinas virtuais que compartilham o kernel do sistema operacional do Ubuntu. Este tutorial começa mostrando quatro maneiras de fazer isso.

Mais sobre o Docker

O Docker torna seu aplicativo portátil, para que você possa construir e executar em qualquer hospedagem Docker. As imagens de contêiner podem ser usadas inalteradas em qualquer lugar que o Docker esteja disponível, desde seu laptop até a nuvem. Isso elimina diferenças entre ambientes de tempo de execução e simplifica a experiência do desenvolvedor. O formato do contêiner também é fácil de distribuir entre várias máquinas físicas, facilitando o dimensionamento do seu aplicativo conforme a demanda muda.

Docker inclui tudo que você precisa para construir e executar imagens de contêineres, sejam eles do Docker Hub e outros registros públicos, ou seus próprios Dockerfiles.

Preparando para instalar o Docker no Ubuntu

Você pode instalar o último lançamento do Docker nas versões 18.04, 20.04, 21.10, e 22.04 no Ubuntu. As arquiteturas x64_64/AMD64, ARMhf, ARM64, e S390x são suportadas.

Há várias maneiras de instalar o Docker, e sua escolha dependerá da funcionalidade que você precisa e da sua abordagem preferida para o gerenciamento de pacotes. Você aprenderá todas as opções possíveis neste guia.

Selecionando um Docker Flavor

O Docker no Linux era tradicionalmente apenas terminal. Uma instalação funcional compreende o Docker Engine, um daemon que roda seus contêineres, e a interface de linha de comando (CLI) docker para interagir com o daemon.

Docker Desktop é uma maneira alternativa de usar o Docker. Historicamente disponível apenas para Windows e Mac, ele foi lançado para Linux em maio de 2022. O Docker Desktop no Ubuntu requer um processador AMD64 e/ou Ubuntu 21.10 ou 22.04. Ele fornece uma interface gráfica para o gerenciamento de seus contêineres, um cluster Kubernetes integrado e suporte para extensões de terceiros. O Docker Desktop também fornece os CLIs docker e Docker Compose CLIs.

Docker Desktop é diferente do Docker Engine por usar uma máquina virtual para rodar seus contêineres (e é por isso que Docker Desktop é necessário para usuários de Windows e MacOS). Embora seja possível usar os dois lado a lado no Ubuntu, mas pode haver conflitos entre as versões do docker CLI. É melhor escolher uma e aderir a ela. Escolha o Docker Engine se você estiver confortável em seu terminal e quiser o melhor suporte e desempenho. A Máquina Virtual do Docker Desktop é um pouco mais pesada, mas se você deseja uma interface do usuário unificada ou deseja usar o Kubernetes, é a melhor escolha.

Instalando o Docker Engine no Ubuntu

Docker Engine é a maneira padrão de operar o Docker no Ubuntu. Ele funciona com todas as versões e ambientes suportados, desde uma máquina local do Ubuntu Desktop até o seu servidor Ubuntu Server cloud host. Certifique-se de que você está rodando um lançamento do Ubuntu que é 18.04 ou mais recente antes de continuar.

Docker Engine tem 3 métodos diferentes de instalação:

  1. Um repositório oficial do Ubuntu apt
  2. Um pacote Debian autônomo (.deb)
  3. Um script de instalação automatizada

A opção 1, o repositório Ubuntu apt, é a mais comumente usada. Ele adiciona o Docker à sua lista de pacotes para que você possa instalar facilmente futuras atualizações rodando apt upgrade. A opção 2 não suporta atualizações automáticas, mas é ideal para instalar o Docker em sistemas off-line com air-gap. O script de instalação automatizada é o método mais simples para começar, mas é configurado apenas para uso em desenvolvimento. O Docker não aconselha o seu uso em ambientes de produção.

Use o repositório apt quando você estiver trabalhando com um sistema de produção, quiser atualizações fáceis, ou precisar usar o mesmo mecanismo em todos os ambientes.

Use o script de instalação automatizada se você quiser uma rápida experiência de configuração enquanto experimenta o Docker em sua própria máquina.

1. Instalando o Docker usando o Repositório apt

O Docker publica pacotes em seu próprio repositório apt. Você precisará adicionar este repositório à sua lista de fontes apt, caso contrário, sua instalação em apt não será capaz de encontrar os pacotes do Docker.

Comece atualizando sua lista de pacotes existente e instalando algumas dependências para os seguintes passos. As ferramentas ca-certificates, curl, gnupg, e lsb_release serão usadas para baixar os detalhes corretos do repositório Docker apt e a chave de assinatura para o seu sistema. Embora você provavelmente já tem estes pacotes, não custa nada ter certeza de que eles estão disponíveis.

$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release

Em seguida, registre a keyring Docker’s GPG com o apt. Isso permitirá que o apt valide os pacotes do Docker que você instalar.

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg

O comando curl baixa a chave GPG do Docker para o Ubuntu, converte de volta para a codificação padrão OpenGPG e salva-a no diretório da keyring do apt. chmod é usado para definir as permissões no arquivo keyring para que apt o detecte de forma confiável.

Agora você pode adicionar a fonte do pacote Docker ao seu sistema. Execute o seguinte comando:

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

Isto usa a substituição de shell para detectar automaticamente a arquitetura do seu sistema, tal como AMD64 ou ARM64, e baixar a lista de pacotes apropriada. Ele será verificado usando a chave GPG adicionada anteriormente. O repositório é adicionado como uma nova lista de pacotes dentro da apt /etc/apt/sources.list.d directory.

Atualize suas listas de pacotes novamente para que apt saiba que os pacotes Docker existem:

$ sudo apt update

Agora você pode usar o comando apt install para adicionar componentes do Docker ao seu sistema. Você estará instalando a última versão do Docker Community Edition (CE). Há três pacotes para instalar:

  • docker-ce o daemon do Docker Engine.
  • docker-ce-cli docker CLI: o Docker CLI com o qual você vai interagir.
  • containerd.io docker CLI: o contêiner runtime conhecido como containerd que inicia e opera seus contêineres.
$ sudo apt install docker-ce docker-ce-cli containerd.io

2. Instalando o Docker usando o pacote Debian

O pacote oficial .deb é simples de configurar, mas você terá que baixar e instalar manualmente cada novo lançamento. Os pacotes são hospedados em um servidor de arquivos simples. Primeiro navegue até a página de notas de lançamento do Docker para encontrar o último número de versão disponível, como por exemplo 20.10.20. Em seguida, vá para a página do GitHub do containerd para verificar o número da versão também. Ele será parecido com 1.6.8.

Agora você pode executar a seguinte sequência de comandos para baixar o conjunto certo de pacotes para à sua plataforma. Substitua <DOCKER_VERSION> e <CONTAINERD_VERSION> pelos números atuais das versões Docker e containerd, respectivamente.

$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce.deb
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce-cli_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce-cli.deb
$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/containerd.io_<CONTAINERD_VERISON>-1_amd64.deb -o containerd.deb

Você também pode baixar os arquivos e inspecionar todos os lançamentos disponíveis visitando a lista do diretório para sua versão do Ubuntu em seu navegador.

Uma vez que você tenha baixado os pacotes Docker CE, CLI e containerd, use o seguinte comando para instalá-los:

$ sudo apt install ./docker-ce.deb ./docker-ce-cli.deb ./containerd.deb

Ajuste os nomes dos arquivos se você tiver baixado os pacotes manualmente sem usar o script fornecido acima.

3. Instalando o Docker usando o script de instalação

O script de instalação do Docker automatiza a instalação de todos os componentes do Docker. Ele não é interativo, então você pode sentar e esperar enquanto seu sistema está preparado para você.

Primeiro baixe o script:

$ curl -fsSL https://get.docker.com -o get-docker.sh

Agora execute o script com privilégios de raiz:

$ sudo sh get-docker.sh
Executing docker install script
...

Espere até que o script chegue ao fim. Você deve ver uma mensagem de confirmação mostrando que o Docker está instalado.

O script foi concebido para ser uma solução de tamanho único para todos. Você não pode customizar o que ele faz sem modificar diretamente a fonte do script. Ele também não é projetado para realizar atualizações do Docker, pois não trará dependências até suas versões mais recentes.

Certifique-se de que o Docker Engine funcione no Ubuntu

Seja qual for o método de instalação utilizado, você deve garantir que tudo esteja funcionando, iniciando um contêiner:

$ sudo docker run hello-world

Você verá que o cliente Docker recupera a imagem hello-world:image para sua máquina, do repositório Docker Hub:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625
Status: Downloaded newer image for hello-world:latest

Um novo contêiner então começará automaticamente. A imagem inicial “hello-world” é configurada para executar um simples comando que fornece algumas informações básicas sobre o Docker e depois sai imediatamente:

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.

Quando você vê a saída mostrada acima, isso significa que o Docker está pronto para ser usado. O daemon extraiu com sucesso a imagem hello-world:latest do Docker Hub, e começou usando um contêiner. Tudo a partir da linha “Hello from Docker” foi emitido pelo processo no contêiner.

Ajustando as permissões do Docker Engine no Ubuntu

Uma nova instalação do Docker Engine normalmente requer privilégios de raiz para executar docker CLI comandos. Você precisa prefixar cada comando com sudo, o que é inconveniente.

Você pode evitar esta exigência adicionando ao grupo docker após ter instalado o Docker Engine usando os passos acima. Esta mudança opcional lhe dá as permissões para executar os comandos docker como um usuário regular, sem sudo, simplificando sua experiência CLI.

Certifique-se de que o grupo de usuários docker existe:

$ sudo groupadd docker

Então, acrescente isso:

$ sudo usermod -aG docker $USER

Se você já executou algum comando docker com sudo, você precisará corrigir as permissões no seu diretório ~/.docker:

$ sudo chown $USER:$USER /home/$USER/.docker -R
$ sudo chmod g+rwx $HOME/.docker -R

Isso assegura que sua própria conta de usuário tenha permissão para ler e escrever arquivos no diretório. Saia do sistema e faça login novamente para que a nova adesão de grupo entrem em vigor. Tente executar o comando docker sem sudo:

$ docker run hello-world

Esta etapa pós-instalação completa o processo de configuração do Docker no Ubuntu. O daemon já está configurado para iniciar automaticamente para que você não tenha que configurar manualmente um serviço. Se você está planejando uma instalação avançada, consulte o manual do usuário do Docker para instruções sobre como configurar uma rede personalizada, registro e gerenciamento de volume de armazenamento.

Adicionando o Docker Compose no Ubuntu

Docker Compose é uma popular ferramenta Docker companheiro que facilita o trabalho com aplicativos que utilizam múltiplos contêineres. Enquanto o docker CLI visa apenas um contêiner com cada comando, docker compose pode iniciar e parar vários contêineres com cada ação. Isso simplifica o gerenciamento de sistemas onde você tem frontend, backend e serviços de banco de dados separados.

O Docker Compose está agora disponível como parte do docker CLI. O plugin Compose V2 está incluído quando você usa o script oficial de instalação para instalar o Docker. Ele também está disponível em apt se você usou esse método:

$ sudo apt install docker-compose-plugin

Alternativamente, você pode fazer o download do último arquivo .deb e instalar ele manualmente:

$ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb -o docker-compose-plugin.deb
$ sudo apt install -i ./docker-compose-plugin.deb

Verifique se o Compose está funcionando, tentando o comando docker compose version:

$ docker compose version
Docker Compose version v2.6.0

Instalando o Docker Desktop no Ubuntu

Enquanto o Docker Engine é restrito para uma experiência somente CLI, o Docker Desktop fornece uma interface gráfica de gerenciamento, suporte Kubernetes incorporado e extensões opcionais de terceiros que podem ajudar a simplificar seus fluxos de trabalho de contêineres. É uma ótima escolha quando você está procurando facilidade de uso em sua própria estação de trabalho.

Para instalar o Docker Desktop, primeiro instale algumas dependências usando apt:

$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release

Em seguida, execute o seguinte conjunto de comandos para adicionar o repositório apt do Docker. Embora o Docker Desktop não esteja incluído no repositório, os pacotes dentro dele são referenciados como dependências pelo repositório Debian do Desktop.

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update

O comando curl baixa a chave GPG do Docker para o Ubuntu, convertendo de volta para a codificação padrão OpenGPG e salvando no diretório apt do keyring. chmod é usado para definir as permissões no arquivo keyring para que apt o detecte de forma confiável.

Baixe o arquivo Docker Desktop Debian a partir do link na documentação. Isso fornecerá a última versão estável do Docker Desktop para Linux. Use apt para instalar o pacote, substituindo no número da versão que você baixou:

$ sudo apt install ./docker-desktop-4.11.0-amd64.deb

O Docker Desktop agora será exibido no launcher do seu aplicativo. Use o seu launcher para iniciar o Docker Desktop e abrir a interface de usuário. Você também poderá executar docker, docker compose, e kubectl comandos em seu terminal. O aplicativo também adiciona um menu à janela de comandos que mostra o status atual do Docker Desktop e permite que você execute algumas ações rápidas.

Quando você iniciar o Docker Desktop pela primeira vez, você será solicitado para aceitar um contrato de serviço. Clique no botão Aceitar se você concordar e aguarde que o Docker Desktop inicie sua máquina virtual.

Depois de alguns momentos, o painel de controle será carregado. Ele fornece atalhos para criar  contêineres a partir de imagens populares, evitando comandos terminais demorados.

Docker Desktop instalado no Ubuntu.
Docker Desktop instalado no Ubuntu.

DevKinsta: Docker Desktop para WordPress

Soluções especializadas construídas sobre Docker oferecem uma experiência ainda mais simples para tecnologias específicas. DevKinsta é uma ferramenta de desenvolvimento local gratuita para a criação de temas e plugins WordPress que usa o Docker para isolar e proteger completamente seus sites WordPress. Ele torna rápido e fácil iniciar e personalizar um novo projeto WordPress sem a necessidade de configurar servidores. Quando você estiver pronto, você pode mover diretamente para a plataforma Kinsta para implantar seu site de produção.

Você pode instalar o DevKinsta no MacOS, Windows, e Ubuntu.

Resumo

Docker é a forma como a maioria das pessoas que trabalham em desenvolvimento começam a usar contêineres. Você pode facilmente instalar o Docker em seu sistema Ubuntu, seja como Docker Engine ou como o novo Docker Desktop. Uma vez instalado o Docker, você terá tudo o que precisa para construir e operar contêineres, simplificando o desenvolvimento e reduzindo as discrepâncias entre ambientes.

Se você está desenvolvendo temas e plugins para WordPress, DevKinsta pode simplificar a criação de um ambiente de desenvolvimento local e a implantação do seu site.

James Walker

James Walker is the founder of Heron Web, a UK-based software development studio providing bespoke solutions for SMEs. He's experienced in delivering custom software using engineering workflows built around modern DevOps methodologies. James is also a freelance technical writer and has written extensively about the software development lifecycle, current industry trends, and DevOps concepts and technologies.