Tutorial do Docker para iniciantes: noções básicas, Archiarquitetura, contêineres

⚡ Resumo Inteligente

O Docker é uma plataforma de conteinerização que empacota aplicações e suas dependências em contêineres portáteis e leves. Esta visão geral explica a arquitetura do Docker e sua instalação. Ubuntu, comandos essenciais e como os contêineres diferem das máquinas virtuais tradicionais para uma entrega de software mais rápida.

  • ???? Conteinerização: O Docker virtualiza ao nível do sistema operacional, portanto os contêineres compartilham o kernel do host e usam menos recursos do que as máquinas virtuais.
  • 🧱 Architextura: O mecanismo Docker (dockerd), as imagens, os registros e os contêineres formam a arquitetura cliente-servidor por trás de todo fluxo de trabalho Docker.
  • 📦 Imagens e contêineres: Uma imagem é um modelo somente leitura, enquanto um contêiner é uma cópia em execução, e uma imagem pode iniciar vários contêineres.
  • 🗄️ Registros: O Docker Hub armazena imagens públicas e privadas, oferecendo milhões de imagens prontas para uso que você pode baixar e executar.
  • ⚙️ Instalação: On Ubuntu Você adiciona o repositório APT do Docker e a chave GPG e, em seguida, instala o pacote docker-ce com o apt-get.
  • ⌨️ Comandos principais: Gerencie contêineres com os comandos docker pull, run, start, stop, ps, stats e images a partir da linha de comando.

Tutorial de Docker para iniciantes, abordando arquitetura e instalação. Ubuntue comandos básicos de contêiner

O Docker é uma das plataformas de conteinerização mais populares usadas na computação moderna. DevOps e fluxos de trabalho na nuvem. Este tutorial de Docker para iniciantes explica o que é o Docker, como funciona sua arquitetura e como instalá-lo na nuvem. Ubuntue os comandos básicos usados ​​para gerenciar imagens e contêineres.

O que é Docker?

Estivador O Docker é uma plataforma de desenvolvimento de software para virtualização que permite a execução de múltiplos sistemas operacionais no mesmo host. Ele ajuda a separar a infraestrutura das aplicações, possibilitando a entrega rápida de software. Diferentemente dos hipervisores, que são usados ​​para criar máquinas virtuais (VMs), o Docker realiza a virtualização em nível de sistema, utilizando unidades chamadas contêineres Docker.

Os contêineres Docker são executados sobre o sistema operacional do host, como mostrado na imagem abaixo. Isso melhora tanto a eficiência quanto a segurança. Você também pode executar mais contêineres do que máquinas virtuais na mesma infraestrutura, pois os contêineres utilizam menos recursos.

Virtualização em Docker vs Hypervisor
Virtualização em Docker vs Hypervisor

Ao contrário das máquinas virtuais, que podem se comunicar diretamente com o hardware do host (por exemplo, um adaptador Ethernet que cria mais adaptadores virtuais), os contêineres Docker são executados em um ambiente isolado sobre o sistema operacional do host. Mesmo que seu host execute Windows, você pode correr Linux imagens dentro de contêineres com a ajuda de Hyper-V, que cria automaticamente uma pequena máquina virtual para virtualizar a imagem base.

Agora que você já sabe o que é o Docker, vamos analisar os principais motivos pelos quais as equipes o escolhem.

Por que usar o Docker?

Aqui estão os principais motivos para usar o Docker:

  • Docker é um software usado para virtualização, permitindo múltiplos processos. sistemas operacionais para executar no mesmo host.
  • O Docker é uma aplicação cliente-servidor, o que significa que os clientes comunicam com um servidor.
  • As imagens do Docker funcionam como o "código-fonte" dos contêineres; você as utiliza para construir.
  • O Docker suporta dois tipos de registros: públicos e privados.
  • Os contêineres são as unidades organizacionais do Docker. Em termos simples, uma imagem é um modelo e um contêiner é uma cópia desse modelo; portanto, você pode executar vários contêineres a partir da mesma imagem.

Esses benefícios decorrem da forma como o Docker foi projetado. A seção a seguir detalha a arquitetura do Docker e seus componentes principais.

Estivador Archiarquitetura

Neste tutorial sobre contêineres Docker, vamos analisar os principais componentes da arquitetura Docker.

Estivador ArchiComponentes de arquitetura: mecanismo, imagens, registros e contêineres.

Estivador Archiarquitetura

Motor Docker

O Docker é uma aplicação cliente-servidor, o que significa que temos clientes que encaminham requisições para um servidor. O daemon do Docker, chamado dockerd, é o mecanismo do Docker que representa o servidor. O daemon e os clientes podem ser executados no mesmo host ou em um host remoto, e se comunicam por meio de um binário cliente de linha de comando e um protocolo completo. API RESTful que interage com o dockerd.

Imagens Docker

As imagens Docker são o "código-fonte" dos nossos contêineres; nós as usamos para construir contêineres. As imagens podem ter software pré-instalado, o que acelera a implantação. Elas são portáteis e você pode usar imagens existentes ou criar as suas próprias.

Registros do Docker

O Docker armazena as imagens que criamos em registros. Existem registros públicos e privados. O Docker possui um registro público chamado Hub do Docker, onde você também pode armazenar imagens de forma privada. O Docker Hub possui milhões de imagens que você pode começar a usar imediatamente.

Contêineres Docker

Os contêineres são as unidades organizacionais do Docker e um de seus conceitos básicos. Quando criamos uma imagem e a executamos, estamos executando-a dentro de um contêiner. A analogia com contêineres é usada devido à portabilidade do software que roda dentro dele: você pode movê-lo, "enviá-lo", modificá-lo, gerenciá-lo, criá-lo ou destruí-lo, assim como navios de carga lidam com contêineres reais.

Em termos simples, uma imagem é um modelo e um contêiner é uma cópia desse modelo. Você pode ter vários contêineres (cópias) da mesma imagem.

A interação entre esses diferentes componentes mostra como a tecnologia de contêineres Docker funciona em conjunto. Comandos como `docker pull` e `docker run`, que abordaremos mais adiante, permitem gerenciar esse fluxo de trabalho.

Com a arquitetura em mente, vamos instalar o Docker para que você possa experimentar esses componentes por conta própria.

Como instalar o Docker no Linux/Ubuntu

A seguir, um processo passo a passo para instalação do Docker no Linux/Ubuntu:

Passo 1) Para instalar o Docker, você precisa dos pacotes DEB da equipe do Docker. Primeiro, alguns pré-requisitos. Ubuntu São necessários pacotes. Use o comando abaixo para instalá-los.

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

*o sinal “\” não é necessário ele é usado para a nova linha, se quiser você pode escrever o comando sem usar “\” em apenas uma linha.

Passo 2) Adicione a chave GPG oficial do Docker com a impressão digital. Use o comando Docker abaixo para inserir a chave GPG.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Passo 3) Em seguida, adicione o repositório APT do Docker usando o comando abaixo.

$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

Você poderá ser solicitado a confirmar que deseja adicionar o repositório e que a chave GPG seja adicionada automaticamente ao seu host. O comando `lsb_release` deverá preencher o arquivo. Ubuntu versão de distribuição do seu host.

Passo 4) Após adicionar a chave GPG, atualize as fontes APT usando o comando Docker abaixo.

$ sudo apt-get update

Agora você pode instalar o próprio pacote Docker.

Passo 5) Após a atualização das fontes do APT, inicie a instalação dos pacotes Docker em Ubuntu usando o comando Docker abaixo.

$ sudo apt-get install docker-ce

O comando acima instala o Docker e outros pacotes necessários. Antes da versão 1.8.0 do Docker, o nome do pacote era lxc-docker, e entre as versões 1.8 e 1.13, o nome do pacote era docker-engine.

OBSERVAÇÃO: Docker para Windows exige Windows 10 Pro ou Enterprise versão 14393, ou Windows Servidor 2016 RTM, para executar.

Como usar o Docker usando comandos básicos do Docker

Veja como usar o Docker com alguns comandos básicos.

O comando mais básico que você deve executar após instalar o Docker é o `docker info`, como mencionado anteriormente.

$ sudo docker info

Você deverá obter um resultado semelhante ao seguinte.

Utilize o Docker usando comandos básicos, exibindo a saída do comando `docker info`.

Como mostrado no exemplo do Docker acima, podemos ver informações sobre os contêineres do Docker: quantos estão em execução, pausados ​​ou parados e quantas imagens foram baixadas. Agora, vamos obter nossa primeira imagem.

$ sudo docker pull alpine

Com esse comando, estamos instruindo o Docker a baixar a imagem "alpine", obtendo-a do registro público na versão mais recente, que é a definida por padrão.

*alpine é uma imagem Docker mínima baseada em Alpine Linux com um índice de pacote completo e apenas 5 MB de tamanho.

Se quisermos executar a imagem como um contêiner, usamos o seguinte comando.

$ sudo docker run -i -t alpine /bin/bash

Executar o comando nos leva diretamente ao terminal Alpine. A flag -i mantém a entrada padrão (STDIN) aberta no contêiner, mesmo quando você não está conectado a ele; essa entrada padrão persistente é metade do que você precisa para um shell interativo. A flag -t é a outra metade e instrui o Docker a atribuir um pseudo-tty ao contêiner. Juntas, elas nos fornecem um shell interativo no novo contêiner. Saímos do contêiner com um simples comando de saída.

Agora, neste tutorial básico de Docker, podemos tentar executar um Ubuntu imagem.

$ sudo docker run -it ubuntu /bin/bash

Observe que o Docker verifica a imagem localmente e, caso ela não esteja presente, a imagem é obtida automaticamente da biblioteca de imagens. Mais uma vez, temos um shell interativo em execução. Também podemos nomear os contêineres à medida que os executamos.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

Em seguida, saímos novamente. Também podemos executar um contêiner que criamos anteriormente sem um shell interativo.

$ sudo docker start container_name

E paramos o contêiner digitando docker stop nome_do_contêiner.

$ sudo docker stop container_name

Se quisermos ver todos os contêineres em execução, basta executar o seguinte comando.

$ docker ps

Para todos os contêineres, adicionamos "-a" ao final do mesmo comando, como em `docker ps -a`. Esse comando exibe o ID do contêiner, qual imagem ele utiliza, quando foi criado, seu status de execução, as portas expostas e um nome gerado aleatoriamente para facilitar o gerenciamento.

Ao executar contêineres, muitas vezes queremos saber quantos recursos eles estão utilizando. Para isso, podemos usar o seguinte comando.

$ docker stats

Você também pode ver quais imagens baixou localmente, juntamente com informações sobre elas.

$ sudo docker images

O comando no exemplo do Docker acima exibe cada imagem do Docker com uma etiqueta que mostra a versão da imagem, um ID de imagem exclusivo, a data de criação e o tamanho da imagem.

Para entender por que os contêineres representam uma melhoria tão grande, é útil analisar como a virtualização evoluiu.

O que é Virtualização?

Antes, implantar um serviço era um processo lento e trabalhoso. Os desenvolvedores escreviam o código e, em seguida, a equipe de operações o implantava em máquinas físicas, onde precisavam ficar atentos às versões das bibliotecas, patches e compiladores da linguagem para garantir o funcionamento correto do código. Se houvesse bugs ou erros, o processo recomeçava do zero: os desenvolvedores corrigiam o problema e a equipe de operações reimplantava o serviço.

As coisas melhoraram com a criação dos hipervisores. Os hipervisores executam múltiplos sistemas operacionais. máquinas virtuaisou VMs, no mesmo host, que podem estar em execução ou desligados. As VMs reduziram bastante o tempo de espera para implantação de código e correção de bugs, mas o verdadeiro divisor de águas foram os contêineres Docker.

A popularidade do Docker também é impulsionada por ferramentas de orquestração que gerenciam contêineres em grande escala, como... KubernetesAntes de prosseguirmos, aqui está uma breve referência dos comandos mais importantes do Docker.

Comandos importantes do Docker

Abaixo estão os comandos importantes do Docker:

Command Descrição
informações da janela de encaixe Comando de Informação
puxão de encaixe Baixe uma imagem
docker run -i -t nome_imagem /bin/bash Execute a imagem como um contêiner
docker iniciar nosso_container Iniciar contêiner
docker parar container_name Parar contêiner
Docker PS Lista de todos os contêineres em execução
estatísticas do docker Informações do contêiner
imagens docker Lista de imagens baixadas
Limpeza do Docker Mate todos os contêineres em execução.

Leia também estes Perguntas e respostas da entrevista de emprego do Docker Para iniciantes e profissionais experientes.

Perguntas Frequentes

Um contêiner Docker compartilha o kernel do sistema operacional hospedeiro e isola apenas a aplicação, sendo, portanto, leve e iniciando em segundos. Uma máquina virtual, por outro lado, inclui um sistema operacional convidado completo, o que a torna maior, mais lenta para inicializar e mais exigente em recursos.

Um Dockerfile é um script de texto simples que contém instruções como FROM, RUN, COPY e CMD. O Docker lê essas instruções para construir uma imagem automaticamente. Cada linha adiciona uma camada, permitindo que você reproduza o mesmo ambiente em qualquer máquina.

O Docker Compose define e executa aplicações com múltiplos contêineres usando um único arquivo YAML. Você descreve cada serviço, rede e volume uma única vez e, em seguida, inicia tudo com o comando `docker compose up`. É ideal para desenvolvimento e teste local de serviços interconectados.

O Docker cria e executa contêineres individuais, enquanto Kubernetes O Docker orquestra vários contêineres em um cluster. O Kubernetes adiciona escalonamento automático, autorrecuperação e balanceamento de carga. Na prática, o Docker empacota a aplicação e o Kubernetes a gerencia em produção.

O Docker Engine é gratuito e de código aberto sob a licença Apache 2.0. O Docker Desktop é gratuito para uso pessoal, educacional e para pequenas empresas, mas empresas maiores precisam de uma assinatura paga. O Docker Hub oferece planos de hospedagem de imagens gratuitos e pagos.

O Docker é executado nativamente no Linux e é compatível com Windows e macOS através do Docker Desktop. Windows No macOS e no Mac, o Docker usa uma máquina virtual leve para executar o kernel Linux necessário para os contêineres. A maioria das imagens de contêiner são baseadas em Linux.

Assistentes de IA geram Dockerfiles, arquivos docker-compose e comandos de linha de comando a partir de prompts em linguagem natural. Eles também leem logs de compilação e erros de contêiner, explicam a causa e sugerem correções. Sempre revise a configuração gerada para garantir que as tags de imagem, os caminhos e a segurança estejam corretos antes de executá-la.

Sim. Travas deslizantes portáteis Copiloto do GitHub O ChatGPT pode gerar Dockerfiles e arquivos Compose a partir de um breve comentário ou descrição. Isso agiliza a criação de código repetitivo, mas é importante verificar as imagens base, versões e boas práticas, pois os trechos de código gerados podem usar configurações padrão desatualizadas.

Resuma esta postagem com: