O Docker Desktop é uma solução popular de conteinerização que reúne tudo o que você precisa para criar imagens e executar contêineres. Um download oferece Docker, Docker Compose, Kubernetes, uma GUI abrangente e suporte para uma grande variedade de extensões de terceiros.

Historicamente, o Docker Desktop foi limitado aos sistemas Windows e Mac. Os usuários do Linux tiveram que instalar manualmente o Docker Engine e interagir com ele a partir do terminal ou de uma interface de usuário separada. O Docker anunciou uma versão do Desktop para Linux na DockerCon 2022, finalmente oferecendo paridade de recursos nas três principais plataformas. Este guia mostrará como configurá-lo e começar.

Preparando para executar o Docker Desktop

As etapas neste artigo foram testadas em um ambiente Ubuntu 22.04 limpo. A área de trabalho também é compatível com Ubuntu 21.10, Debian 11 e Fedora 35/36. A documentação específica da distribuição está disponível no site do Docker.

A área de trabalho requer um sistema de 64 bits com 4 GB de RAM e virtualização de hardware KVM habilitada. O módulo do kernel KVM geralmente é ativado automaticamente quando seu host oferece suporte à virtualização. Você pode verificar executando o kvm-ok domínio:

$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

Habilite a virtualização no BIOS ou UEFI do seu sistema se kvm-ok relata um erro. Você também pode tentar carregar manualmente o módulo do kernel KVM usando modprobe:

# 1/2
$ sudo modprobe kvm

# 2/2 INTEL ONLY
$ sudo modprobe kvm_intel

# 2/2 AMD ONLY
$ sudo modprobe kvm_amd

O Docker Desktop não foi projetado para ser executado junto com o Docker Engine. Você deve interromper o serviço Docker se já estiver usando o Docker Engine em sua máquina. Isso reduzirá o consumo de recursos e minimizará o risco de conflitos entre o Engine e o Desktop.

$ sudo service docker stop

Instalação do Docker Desktop

O pacote Docker Desktop ainda não está disponível nos repositórios, portanto, deve ser adquirido manualmente. Baixe o pacote correto para seu sistema operacional usando os links na documentação.

$ wget https://desktop.docker.com/linux/main/amd64/docker-desktop-4.12.0-amd64.deb

O pacote do Docker Desktop depende de outros pacotes no repositório do Docker. Embora o próprio Desktop não seja instalado a partir do repositório, você ainda precisa dele em sua lista de fontes para que as dependências possam ser resolvidas. Execute o seguinte script para adicionar o repositório Docker Apt à sua máquina:

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

# Download the GPG key used to sign the packages in the repository
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Add the repository to your package sources list
$ 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

Agora você pode instalar o pacote Desktop com o Apt’s install domínio:

$ sudo apt install -y ./docker-desktop-4.12.0-amd64.deb

O Docker Desktop agora deve aparecer na sua lista de aplicativos.

Usando a área de trabalho do Docker

Inicie o Docker Desktop a partir do inicializador de aplicativos do seu sistema operacional. Você deve ver o ícone da baleia do Docker aparecer na bandeja do sistema. Clicar no ícone exibe o menu da bandeja do Docker.

Imagem do menu da bandeja do sistema do Docker Desktop no Ubuntu

O processo de inicialização da primeira execução pode levar alguns minutos para ser concluído. A animação do ícone será interrompida e a linha de status na parte superior do menu mudará para “O Docker Desktop está em execução” quando o Docker estiver pronto para uso. Clique no item “Painel de Controle” na parte superior do menu para abrir a interface do usuário se ela não aparecer automaticamente.

Você será solicitado a concordar com os termos de serviço e, em seguida, será direcionado para a tela Containers. Opcionalmente, você pode entrar no Docker Hub clicando no botão Entrar na barra de título e seguindo as instruções.

Imagem da tela inicial do Docker Desktop

tente correr docker S docker compose em seu terminal para verificar se as CLIs estão disponíveis:

$ docker version
Client: Docker Engine - Community
 Cloud integration: v1.0.29
 Version:           20.10.18
...

$ docker compose version
Docker Compose version v2.10.2

Em seguida, inicie um contêiner para verificar se sua instalação funciona:

$ docker run -d -p 80:80 docker/getting-started

Seu novo contêiner deve aparecer na interface do usuário da área de trabalho do Docker. Clicar no ícone de três pontos à direita da tabela exibe uma lista de ações que você pode executar no Docker Desktop, como abrir um terminal dentro do contêiner ou visitar portas publicadas em seu navegador.

Imagem da interface do contêiner do Docker Desktop

A guia Imagens no lado esquerdo da tela fornece uma tabela de todas as imagens de contêiner presentes em seu host. Os controles estão disponíveis para limpar imagens não utilizadas, iniciar rapidamente um novo contêiner a partir de uma imagem e enviar e extrair imagens entre diferentes registros.

imagem de imagens na interface do Docker Desktop

Você pode aprender mais sobre como usar o Docker Desktop na documentação. A funcionalidade abrange muitos dos docker Comandos CLI enquanto sobrepõe conceitos de nível superior adicionais, como ambientes de desenvolvedor para compartilhar código de trabalho em andamento.

Ativando o Kubernetes

O Docker Desktop tem suporte interno para Kubernetes, mas não está habilitado por padrão. Ative-o clicando no ícone de engrenagem de configurações na barra de título do aplicativo e selecionando “Kubernetes” no menu à esquerda.

imagem da configuração do Kubernetes no Docker Desktop

Marque a caixa de seleção “Ativar Kubernetes” e pressione o botão “Aplicar e reiniciar” no canto inferior direito. Pode levar vários minutos para o Docker adquirir os componentes do Kubernetes e criar seu cluster. Um ícone de status do Kubernetes aparecerá no canto inferior esquerdo do aplicativo, ao lado do ícone do Docker. Ele ficará verde quando o Kubernetes estiver pronto para uso. O status do Kubernetes também é exibido na parte superior do menu da bandeja do Docker Desktop.

Em seguida, instale o Kubectl. Esta é a CLI usada para interagir com seu cluster Kubernetes. O pacote oficial do Snap é a maneira mais fácil de adicioná-lo ao Ubuntu:

$ sudo snap install kubectl

Agora tente usar o Kubectl para acessar seu cluster:

$ kubectl get nodes
NAME             STATUS   ROLES           AGE   VERSION
docker-desktop   Ready    control-plane   22m   v1.25.0

a docker-desktop o nó é mostrado como Ready para que você possa começar a criar Pods:

$ kubectl run nginx --image nginx:latest
pod/nginx created

Exponha seu pod com um serviço:

$ kubectl expose pod/nginx --port 80 --type NodePort
service/nginx exposed

Agora encontre a porta do host que foi atribuída ao serviço:

$ kubectl get services
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        23m
nginx        NodePort    10.96.132.212   <none>        80:30107/TCP   75s

O número da porta é 30107. Use esta porta para acessar seu serviço e recuperar a página de destino NGINX padrão:

$ curl http://localhost:30107
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

Seu cluster Kubernetes está totalmente operacional. Ele será iniciado automaticamente sempre que o Docker Desktop estiver em execução.

Docker Desktop vs. Docker Engine

O Docker Engine é completamente separado do Docker Desktop. O Docker Engine inicia contêineres como processos diretamente em seu host. Ele usa um serviço do sistema para executar o daemon do Docker. a docker A CLI aborda essa instância do daemon ao emitir comandos.

O Docker Desktop executa seus contêineres dentro de uma máquina virtual QEMU. Você não precisa interagir diretamente com o QEMU, pois cuida da criação e administração da máquina virtual. Iniciar o Docker Desktop inicia automaticamente a máquina virtual; sair do aplicativo irá fechá-lo.

A arquitetura de VM era essencial para executar o Docker em sistemas Windows e Mac. Ela fornece um ambiente previsível para hospedar contêineres Linux. A equipe do Docker decidiu continuar usando máquinas virtuais para desktops no Linux para evitar inconsistências entre plataformas.

Embora a máquina virtual não afete o uso diário do Docker, é uma solução mais pesada que demanda mais recursos que o Docker Engine. Você pode esperar que a VM consuma cerca de 2 GB de RAM enquanto estiver ociosa, mesmo quando nenhum contêiner estiver em execução. O consumo de memória do Docker Engine seria insignificante na mesma situação.

Isso significa que o Docker Engine continua sendo a melhor maneira de executar contêineres no Linux em ambientes de produção ou onde quer que o desempenho seja crítico. A área de trabalho é uma ótima opção para desenvolvedores que desejam usar o mesmo fluxo de trabalho totalmente integrado que seus pares no Windows e Mac. A área de trabalho também é a melhor opção quando você deseja usar o Kubernetes sem adicionar ferramentas adicionais. Você precisará de um ambiente Kubernetes dedicado, como Minikube ou MicroK8s, se estiver usando o Docker Engine.

Configuração do Desktop Docker Daemon

Você pode personalizar as configurações do daemon do Docker usadas pelo Desktop clicando no ícone de roda dentada de configurações na barra de título e indo para a guia “Docker Engine” à esquerda da tela.

imagem do gerenciamento de configuração do Docker Engine no Docker Desktop

Digite ou cole suas alterações na entrada fornecida e clique em “Aplicar e reiniciar” no canto inferior direito.

Personalizando limites de recursos

O Docker Desktop limita automaticamente os recursos que sua máquina virtual pode consumir. Os padrões são metade do número total de núcleos de processador disponíveis, 25% de memória do sistema e um arquivo de troca de 1 GB.

imagem das configurações de consumo de recursos no Docker Desktop

Esses limites podem ser alterados acessando a tela de configuração do Docker Desktop e clicando na guia “Recursos” no menu à esquerda. Use os controles deslizantes para personalizar o limite de cada recurso. Você pode alterar o tamanho do disco virtual usado para armazenar dados da máquina virtual rolando a tela para baixo. Clique no botão “Aplicar e reiniciar” no canto inferior direito quando terminar.

Resumo

O Docker Desktop é uma solução de conteinerização orientada ao desenvolvedor que combina o docker CLI com uma GUI versátil e suporte integrado para Kubernetes. A chegada do Desktop no Linux significa que as equipes de desenvolvimento podem padronizar em uma cadeia de ferramentas consistente, independentemente das preferências de plataforma de engenheiros individuais.

O Docker Desktop é melhor visto como uma alternativa ao Docker Engine. Ele fornece seu próprio ambiente de contêiner, incluindo um Docker Engine virtualizado e um conjunto completo de Docker CLIs. Você não pode usar a GUI da área de trabalho com uma instalação existente do Docker Engine. A área de trabalho é mais aplicável às estações de trabalho do desenvolvedor, enquanto o Docker Engine deve ser usado em servidores de produção em que você não precisa de uma interface gráfica e deseja evitar a sobrecarga de executar uma VM.