Pesquisa de site

Instale o Docker Engine e o Docker Compose no Ubuntu


Um guia passo a passo para instalar o Docker Engine com Docker Compose no Ubuntu

Neste guia veremos o que é o Docker, como instalar o Docker Engine no Ubuntu Linux. Além disso, veremos também como instalar o Docker compose, uma ferramenta para definir e executar aplicações Docker multi-container.

Este guia foi testado oficialmente no Ubuntu 22.04 LTS. No entanto, deve funcionar em versões mais antigas, como 20.04 LTS e 18.04 LTS. Para melhor segurança e estabilidade, recomendo que você use a versão mais recente do Ubuntu 22.04 LTS.

O que é Docker?

Docker é uma tecnologia de virtualização rápida, leve e de nível de sistema operacional para desenvolvedores e administradores de sistema que desejam criar um aplicativo com todas as dependências necessárias e distribuí-lo como apenas um pacote.

Ao contrário de outros métodos de virtualização, como VMWare, Xen e VirtualBox, não há necessidade de sistema operacional convidado separado para cada máquina virtual.

Todos os contêineres Docker compartilham com eficiência o kernel do sistema operacional host. Cada contêiner será executado em um espaço de usuário isolado no mesmo sistema operacional.

Os contêineres Docker também serão executados em qualquer variante do Linux. Digamos que você esteja trabalhando no Fedora e eu usando o Ubuntu. Ainda podemos desenvolver, compartilhar e distribuir as imagens Docker entre si.

Você não precisa se preocupar com sistema operacional, software, configurações personalizadas ou qualquer coisa. Podemos continuar o desenvolvimento desde que tenhamos o Docker instalado em nosso sistema host. Simplificando, o Docker funcionará em qualquer lugar!

Você leu dois termos nos parágrafos acima: imagens Docker e contêineres Docker. Você pode se perguntar o que são e qual a diferença entre eles.

Em termos leigos, uma imagem Docker é um arquivo que descreve como um contêiner deve se comportar, enquanto o contêiner Docker é o estado de execução (ou parado) da imagem Docker.

Espero que você tenha uma ideia básica sobre o Docker. Consulte o guia do usuário oficial do Docker para obter mais detalhes. O link está anexado no final deste guia.

Requisitos do Docker

Para instalar e configurar o Docker, seu sistema deve atender aos seguintes requisitos mínimos.

  1. Sistemas operacionais Linux ou Windows de 64 bits.
  2. Se você estiver no Linux, a versão do Kernel deve ser 3.10 ou superior.
  3. Uma conta de usuário com privilégios sudo.
  4. Suporte a VT (tecnologia de virtualização) ativado no BIOS do sistema. [Leia: Como descobrir se uma CPU suporta tecnologia de virtualização (VT)]
  5. Seu sistema deve estar conectado à Internet.

No Linux, para verificar os detalhes do kernel e da arquitetura, execute o seguinte comando no Terminal:

uname -a

Exemplo de resultado:

Linux Ubuntu22CT 5.15.35-3-pve #1 SMP PVE 5.15.35-6 (Fri, 17 Jun 2022 13:42:35 +0200) x86_64 x86_64 x86_64 GNU/Linux

Como você pode ver na saída acima, a versão do kernel do meu sistema Ubuntu é 5.15.35-3-pve e a arquitetura do meu sistema Ubuntu é 64 bits (x86_64 x86_64 x86_64 GNU/Linux). Verifique as letras em negrito no resultado acima.

Atenção: Aqui, estou usando o contêiner Ubuntu 22.04 no Proxmox. É por isso que você vê a palavra “pve” na versão do kernel na saída acima. Se você estiver usando uma máquina física (ou virtual) Ubuntu, você verá 5.15.35-3-generic como versão do kernel.

Bem, a versão do Kernel é superior ao requisito mínimo e o arco é de 64 bits. Assim, podemos instalar e usar o Docker sem problemas.

Observe que não importa qual sistema operacional Ubuntu você usa. Além disso, não importa se você usa o Ubuntu Desktop ou a edição Ubuntu Server ou qualquer outra variante do Ubuntu, como Lubuntu, Kubuntu, Xubuntu.

O Docker funcionará perfeitamente desde que seu sistema tenha o Kernel versão 3.10+ e o arco do seu sistema seja de 64 bits.

Instale o Docker no Ubuntu 22.04 LTS

Primeiro de tudo, atualize seu sistema Ubuntu.

1. Atualize o Ubuntu

Abra seu Terminal e execute os seguintes comandos um por um:

sudo apt update
sudo apt upgrade
sudo apt full-upgrade

2. Adicionar repositório Docker

Primeiro de tudo, instale os certificados necessários e permita que o gerenciador de pacotes apt use um repositório via HTTPS usando o comando:

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

Em seguida, adicione a chave GPG oficial do Docker executando os seguintes comandos:

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

Adicione o repositório oficial do Docker:

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 a lista de fontes do Ubuntu usando o comando:

sudo apt update

3. Instale o Docker

Por fim, execute o seguinte comando para instalar o Docker CE mais recente no servidor Ubuntu 22.04 LTS:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Instale o Docker no Ubuntu

Você também pode, é claro, instalar uma versão específica do Docker. Para verificar a lista de versões disponíveis do Docker, execute:

apt-cache madison docker-ce

Exemplo de resultado:

 docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages

Você pode escolher qualquer versão disponível na lista acima e instalá-la. Por exemplo, para instalar a versão 5:20.10.16~3-0~ubuntu-jammy, execute:

sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io

Depois de instalado, verifique se o serviço Docker está rodando com o comando:

systemctl status docker

Você verá uma saída semelhante a abaixo.

* docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-06-27 13:07:43 UTC; 3min 4s ago
TriggeredBy: * docker.socket
       Docs: https://docs.docker.com
   Main PID: 2208 (dockerd)
      Tasks: 8
     Memory: 29.6M
        CPU: 126ms
     CGroup: /system.slice/docker.service
             `-2208 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071453522Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071459974Z" level=info msg="ClientConn switching balancer to \"pick_first\"" >
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.130989294Z" level=info msg="Loading containers: start."
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.187439756Z" level=info msg="Default bridge (docker0) is assigned with an IP a>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.235966874Z" level=info msg="Loading containers: done."
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240149866Z" level=warning msg="Not using native diff for overlay2, this may c>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240281966Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=over>
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240386856Z" level=info msg="Daemon has completed initialization"
Jun 27 13:07:43 Ubuntu22CT systemd[1]: Started Docker Application Container Engine.
Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.276336600Z" level=info msg="API listen on /run/docker.sock"

Ótimo! O serviço Docker está instalado e funcionando!

Se ainda não tiver sido iniciado, execute o seguinte comando para iniciar o serviço Docker.

sudo systemctl start docker

Habilite o serviço Docker para iniciar automaticamente a cada reinicialização:

sudo systemctl enable docker

A versão instalada do Docker pode ser encontrada usando o comando:

sudo docker version

Exemplo de resultado:

Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:02:46 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:00:51 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Verifique a versão do Docker

4. Testando Docker

Vamos em frente e testar se o Docker está funcionando ou não.

Para fazer isso, execute:

sudo docker run hello-world

O comando acima baixará uma imagem de teste do Docker e executará um programa hello_world de amostra dentro do contêiner.

Se você vir uma saída parecida com a abaixo, parabéns! Docker está funcionando bem em nosso sistema Ubuntu.

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

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/

Execute o contêiner Hello World Docker

Ótimo! Docker está pronto para uso.

Instalei o Docker, e agora? Confira o próximo artigo desta série para aprender os fundamentos do Docker.

Introdução ao Docker

5. Atualize o Docker

Para atualizar o mecanismo Docker para a versão mais recente disponível, basta fazer:

sudo apt update
sudo apt upgrade
sudo apt full-upgrade

6. Execute o Docker como usuário não root no Linux (opcional)

Por padrão, o daemon Docker se liga a um soquete Unix em vez de a uma porta TCP. Como esse soquete Unix pertence ao usuário root, o daemon do Docker só será executado como usuário root. Conseqüentemente, os usuários normais não podem executar a maioria dos comandos do Docker.

Se você deseja executar o Docker como usuário não root no Linux, consulte o seguinte guia:

Como executar o Docker como usuário não root no Linux

Eu pessoalmente não uso isso e não recomendo também. Se você não expor seu sistema à Internet, tudo bem. No entanto, não execute o Docker como usuário não root no sistema de produção.

Instale o Docker Compose no Ubuntu

Docker Compose é uma ferramenta que pode ser usada para definir e executar aplicativos Docker com vários contêineres. Com o Compose, você usa um arquivo Compose para configurar os serviços do seu aplicativo. Então, usando um único comando, você pode criar e iniciar todos os serviços da sua configuração.

Podemos instalar o Docker Compose usando qualquer um dos métodos a seguir.

Método 1 - Instalar Docker Compose usando binário

Baixe o Docker Compose mais recente aqui.

No momento em que escrevo isto, a versão mais recente era 2.6.1.

Execute o seguinte comando para baixar o arquivo de composição do Docker estável mais recente:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Se uma nova versão estiver disponível, basta substituir o número v2.6.1 no comando acima pelo número da nova versão. Não se esqueça de colocar "v" antes do número da versão.

Finalmente, aplique permissões executáveis ao binário usando o comando:

sudo chmod +x /usr/local/bin/docker-compose

Para verificar a versão instalada do docker compositor, execute:

docker-compose version
Docker Compose version v2.6.1

Método 2 - Instalar Docker Compose usando PiP

Alternativamente, podemos instalar o Docker Compose usando PIP. Pip é um gerenciador de pacotes python usado para instalar aplicativos escritos na linguagem de programação Python.

Consulte o guia a seguir para instalar o Pip em seu sistema.

Como gerenciar pacotes Python usando Pip

Depois de instalar o pip, execute o seguinte comando para instalar o docker compose. O comando a seguir é o mesmo para todas as distribuições Linux!

pip install docker-compose

Após instalar o Docker Compose, você pode verificar a versão com o comando:

docker-compose --version

Você verá uma saída semelhante a abaixo.

docker-compose version 2.6.1, build 8a1c60f6

Parabéns! Instalamos com sucesso o Docker Community Edition e o Docker Compose.

Leia nosso guia introdutório ao Docker Compose para aprender como usar o Docker Compose em tempo real para definir e gerenciar contêineres.

Introdução ao Docker Compose no Linux

Atualizar Docker Compose

Para atualizar o Docker Compose, basta baixar o arquivo do pacote mais recente e repetir as instruções de instalação conforme mostrado no Método 1. Se você instalou o Compose usando Pip, você pode atualizar o Docker Compose usando o seguinte comando:

pip install --upgrade docker-compose

Desinstalar o Docker Engine

Para remover o Docker Engine do seu sistema Ubuntu, execute:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin

As imagens, contêineres, volumes ou arquivos de configuração personalizados do Docker em seu sistema não são removidos automaticamente.

Você deve excluir manualmente todas as imagens, contêineres e volumes usando os seguintes comandos:

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

Desinstalar Docker Compose

Se você instalou o Compose usando um arquivo binário, simplesmente remova-o do caminho /usr/local/bin/.

sudo rm /usr/local/bin/docker-compose

Se você instalou o Compose usando PiP, execute o seguinte comando para remover o Docker Compose:

pip uninstall docker-compose

Conclusão

Neste guia, discutimos o que é Docker e como instalar o Docker no Ubuntu 22.04 LTS Jammy Jellyfish. Em seguida, aprendemos como testar a instalação do docker executando uma imagem do docker hello-world. Por fim, concluímos o tutorial instalando o Docker compose usando duas maneiras diferentes e como remover o Docker Engine e o Compose quando eles não forem mais necessários.

Para instalar o Docker em sistemas baseados em RPM como RHEL, Fedora, CentOS, AlmaLinux, Rocky Linux e openSUSE, verifique o link a seguir.

Instale o Docker Engine e o Docker Compose no AlmaLinux, CentOS, Rocky Linux

Recurso:

  • Site Docker

Leitura relacionada:

  • Configure o Docker e o Docker Compose com DockSTARTer

E-book gratuito do Docker:

  • Baixar - e-book grátis: " Livro de receitas de conteinerização do Docker"END_DIV

Artigos relacionados