Instalando o Docker Desktop no Ubuntu.
Tags: devops, docker, tutorial, beginners
Published: 2022-06-11 16:06:58

Recentemente a Docker laçou uma versão do Docker Desktop para os sistema operacional Linux, anteriormente só era possível utilizar essa ferramenta nos sistema operacional MAC e Windows. O Docker Desktop é uma ferramenta que permite de forma mais rápida e através de uma interface gráfica conteinerizar aplicativos.

O melhor de tudo é que você pode utilizar essa ferramenta totalmete de graça, mas não se engane, de graça apenas seguindo os novos itens adicionados no [Docker Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement):

- Se você for uma pequena empresa (menos de 250 funcionários e menos de US$ 10 milhões em receita anual), educação, projetos de código aberto não comerciais e uso pessoal.
- Para uso profissional em empressas grandes, requer uma assinatura paga mensalmente no valor de US $5;

Apesar do Docker Desktop suportar outras distribuições Linux, tais como, Debian e Fedora, ambas da plataforma x86_64/amd64, o objetivo desse artigo técnico é explicar como realizar a instalação numa distribuição Ubuntu da mesma plataforma. Caso você não se interesse em utilizar uma interface gráfica, você pode fazer a instação via linha de comando em um terminal do Ubuntu conforme explicado nesse artigo: [Instalando o Docker Engine CE no Ubuntu](https://dev.to/angelobms/instalando-o-docker-engine-ce-no-ubuntu-379o).

Para a instalação no Ubuntu você precisa realizar o _download_ do pacote **.deb** ou _.rpm_. Nós iremos fazer a instalação utilizado um pacote .deb que pode ser obtido em [DEB](https://desktop.docker.com/linux/main/amd64/docker-desktop-4.9.0-amd64.deb?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64).

---

## Requisitos de sistema
Para uma instalação com sucesso do Docker Desktop, seu host Linux, no caso o Ubuntu, deve atender a seguinte lista de requisitos:

- Kernel de 64 bits e suporte de CPU para virtualização;
- Suporte à virtualização [KVM]([KVM](https://www.linux-kvm.org/page/Main_Page));
- [systemd init system](https://pt.wikipedia.org/wiki/Systemd);
- Ambiente Desktop Gnome ou KDE;
- Pelo menos 4 GB de RAM.

<u>**Importante**</u>
_O Docker não oferece suporte para executar o Docker Desktop em cenários de virtualização aninhada, por exemplo utilizando uma ferramenta de virtualização como o_ [VirtualBox](https://www.virtualbox.org/), [VMware](https://www.vmware.com/), [Xen](https://xenproject.org/), [QEMU](https://www.qemu.org/) _dentre outras. É recomendado que você execute o Docker Desktop para Linux nativamente em distribuições com suporte._

---

## Suporte à virtualização KVM
O Docker Desktop exevuta uma VM (Máquina Virtual) que requer suporte KVM. KVM (para máquina virtual baseada em kernel) é uma solução de virtualização completa para Linux em hardware x86 contendo extensões de virtualização (Intel VT ou AMD-V). O módulo `kvm` deveria carregar automaticamente se o host (sua máquina) possui suporte à virtualização. Mas se para o seu caso esse módulo não foi carregado, você vai precisar carregá-lo manualmente executando o seguinte comando, no terminal do seu ubuntu:

```
modprobe kvm
```

Dependendo do processador da máquina host, o módulo correspondente deve ser carregado executando um dos comando abaixo:

```
modprobe kvm_intel  # Processadores Intel

modprobe kvm_amd    # Processadores AMD
```

Para verificar se o módulo para o processado do host foi carregado e está habilitado, você pode executar o seguinte comando e verificar o resultado, conforme imagem abaixo:

![resultado-01](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ebyaoeirb6l3j63ddxru.png)

Como no meu caso a minha maquina host possui um processador Intel, podemos observar no resultado que foi carregado o módulo kvm_intel. 
 
Após o módulo kvm ser carrgado precisamos seguir para o próximo passo que é configurar as permissões de usuário do dispositivo KVM. Para isso primeiro devemos verificar o propriétario de `/dev/kvm`, execute:

```
ls -al /dev/kvm
```

Podemos verificar na imagem que o usuário proprietário é o usuário root, mas é necessário adicionar o seu usuário ao grupo kvm para acessar o dispositivo kvm. 

![resultado-02](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2bjlado0te4oxdaaa1co.png)
 
Execute o seguinte comando para adicionar seu usuário ao grupo kvm:

```
sudo usermod -aG kvm $USER
```

---

## Instalação do Docker Desktop

**<u>Importante</u>**
_Para a instalação é necessário que seja uma versão de 64 bits do Ubuntu Jammy Jellyfish 22.04 (LTS) ou do Ubuntu Impish Indri 21.10. Também é necessário que o Docker Engine CE esteja instalado no Ubuntu. No artigo [Instalando o Docker Engine CE no Ubuntu](https://dev.to/angelobms/instalando-o-docker-engine-ce-no-ubuntu-379o) eu explico como realizar a instalação._

Abaixo listo os passos que você deve seguir:

1. Desinstale a versão tech preview ou a versão beta do Docker Desktop para Linux:

```
sudo apt remove docker-desktop
```

Caso você queira realizar uma limpeza completa, exclua os arquivos de configuração e dados da pasta `$HOME/.docker/desktop`, o link simbólico em `/usr/local/bin/com.docker.cli` e os arquivos de serviço `systemd` restantes através dos seguintes comandos:

```
rm -r $HOME/.docker/desktop && \
sudo rm /usr/local/bin/com.docker.cli && \
sudo apt purge docker-desktop
```

<u>**Nota**</u>
_Se você instalou o Docker Desktop para Linux tech preview ou versão beta, você precisa remover todos os arquivos que foram gerados por esses pacotes (por exemplo, `~/.config/systemd/user/docker-desktop.service`, `~/.local/ share/systemd/user/docker-desktop.service`)_

Adicionalmente, para ambientes não Gnome Desktop, o gnome-terminal deve ser instalado:

```
sudo apt install gnome-terminal
```

2. Instale o pacote .deb que você fez download no inicio da leitura desse artigo, com o comando apt da seguinte forma:

```
sudo apt-get update && \
sudo apt-get install ./docker-desktop-<version>-<arch>.deb
```

**<u>Nota</u>**
_No final do processo de instalação, o apt exibe um erro devido à instalação de um pacote baixado. Você pode ignorar esta mensagem de erro._
> N: Download is performed unsandboxed as root, as file '/home/user/Downloads/docker-desktop.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

Existem algumas etapas de configuração pós-instalação feitas através do script pós-instalação contido no pacote deb, são elas:

- Definir a capacidade no binário do Docker Desktop para mapear portas privilegiadas e definir limites de recursos;
- Criar um link de /usr/bin/docker para /usr/local/bin/com.docker.cli;
- Adicionar um DNS (Sistema de Nomes de Domínio) para o Kubernetes em /etc/hosts (Explicarei em um artigo posterior a esse o que é Kubernetes).

Pronto, o Docker Desktop está instalado, vamos agora iniciar ele pela primeira. :-D

---

## Iniciando o Docker Desktop
Siga o seguintes passos para o sucesso e torça para que no final tudo ocorreu bem e você seja muito feliz com sua primeira instalcão do Docker Desktop:

1. Abra o menu **Applications** (Aplicativos) no Gnome/KDE Desktop e procure pelo **Docker Desktop**.
![aplicativos](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/918q0ooqr9x3apqvjs1q.png)

2. Selecione **Docker Desktop** para iniciar o Docker. Será exibido o [Docker Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement).

3. Marque a caixa de seleção para aceitar os termos atualizados e clique em **Accept** (Aceito) para continuar.
**<u>Importante</u>**
_Se você não concordar com os termos, o aplicativo Docker Desktop será fechado e você não poderá mais executar o Docker Desktop em sua máquina. Você pode optar por aceitar os termos posteriormente abrindo o Docker Desktop._

Se ocorreu tudo bem depois de você aceitar os termos, o Docker Desktop vai iniciar um Quick Start Guide (guia de ínicio rápido). Este guia é um tutorial para criar uma imagem de exemplo do Docker, executá-la como um contêiner, enviar e salvar no Docker Hub. O [Docker Hub](https://hub.docker.com/) é uma biblioteca para imagens de contêiner.
![guia](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w4pwkzmh45h2mrrhs8hq.png)
 
Caso queira permitir que o Docker Desktop seja iniciado no login, no menu Docker, selecione **Settings** (Configurações) > **General** (Geral) > **Start Docker Desktop when you log in** (Inicio o Docker Desktop quando você logar).

E então chegamos ao fim, ufa! Espero que você tenha gostado e estarei a disposição para tirar as dúvidas que aparecer, só deixar um comentário.

Bons momentos :-)