docker Flashcards

1
Q

O que é o Docker?

A

O Docker é um projeto de software livre para automatizar a implantação de aplicativos como contêineres autossuficientes portáteis que podem ser executados na nuvem ou localmente. O Docker é também uma empresa que promove e aprimora essa tecnologia, trabalhando em colaboração com fornecedores de nuvem, do Linux e do Windows, incluindo a Microsoft.

https://learn.microsoft.com/pt-br/dotnet/architecture/microservices/container-docker-introduction/docker-defined

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vantagem 1

A

Uma imagem de contêiner é uma maneira de empacotar um aplicativo ou serviço e implantá-lo de maneira confiável e reproduzível. Seria possível dizer que o Docker não é apenas uma tecnologia, mas também uma filosofia e um processo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

vantagem 2

A

Quando usam o Docker, os desenvolvedores não dizem: “Funciona no meu computador, por que não na produção?”, eles dizem apenas: “É executado no Docker”, porque o aplicativo do Docker empacotado pode ser executado em qualquer ambiente do Docker com suporte e da maneira pretendida em todos os destinos de implantação (como desenvolvimento, garantia de qualidade, preparação e produção).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

resumo

A

No Docker, cada camada é o conjunto resultante de alterações que ocorrem no sistema de arquivos depois de executar um comando, tal como instalar um programa.

Assim, quando você “olha” o sistema de arquivos depois que a camada é copiada, você vê todos os arquivos, incluindo a camada quando o programa foi instalado.

Você pode pensar uma imagem como um auxiliar somente leitura disco rígido pronto para ser instalado em um “computador” em que o sistema operacional já está instalado.

Da mesma forma, você pode pensar em um contêiner como o “computador” com o disco rígido de imagem instalado. O contêiner, assim como um computador, pode ser ativado ou desativado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

vantagem 2

A

Como os contêineres requerem muito menos recursos (por exemplo, eles não precisam de um sistema operacional completo), eles iniciam rapidamente e são fáceis de implantar. Isso permite que você tenha maior densidade, o que significa que permite a você executar mais serviços na mesma unidade de hardware, reduzindo os custos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Desvantagem

A

Como um efeito colateral da execução no mesmo kernel, você obtém menos isolamento do que em VMs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Imagem de contêiner

A

um pacote com todas as dependências e informações necessárias para criar um contêiner. Uma imagem inclui todas as dependências (como estruturas), além da configuração de implantação e execução a ser usada por um runtime de contêiner. Geralmente, uma imagem deriva de várias imagens base que são camadas empilhadas umas sobre as outras para formar o sistema de arquivos do contêiner. Uma imagem é imutável depois de ser criada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Dockerfile

A

um arquivo de texto que contém instruções para compilar uma imagem do Docker. É como um script em lotes, a primeira linha declara a imagem base com a qual começar e, em seguida, siga as instruções para instalar os programas necessários, copiar os arquivos e assim por diante, até obter o ambiente de trabalho que precisa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Build

A

a ação de criar de uma imagem de contêiner com base nas informações e no contexto fornecido pelo Dockerfile, além de arquivos adicionais na pasta em que a imagem é criada. Compile imagens com o seguinte comando do Docker:
docker build

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Contêiner

A

uma instância de uma imagem do Docker. Um contêiner representa a execução de um único aplicativo, processo ou serviço. Consiste no conteúdo de uma imagem do Docker, um ambiente de execução e um conjunto padrão de instruções. Ao dimensionar um serviço, você cria várias instâncias de um contêiner da mesma imagem. Ou um trabalho em lotes pode criar vários contêineres da mesma imagem, passando parâmetros diferentes para cada instância.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Volumes

A

oferecem um sistema de arquivos gravável que o contêiner pode usar. Uma vez que as imagens são somente leitura, mas a maioria dos programas precisam gravar para o sistema de arquivos, os volumes adicionam uma camada gravável sobre a imagem de contêiner, de modo que os programas têm acesso a um sistema de arquivos gravável. O programa não sabe que está acessando um sistema de arquivos em camadas, é apenas o sistema de arquivos como de costume. Os volumes ficam no sistema de host e são gerenciados pelo Docker.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Marcação

A

uma marca ou um rótulo pode ser aplicado a imagens para que imagens ou versões diferentes da mesma imagem (dependendo do número de versão ou do ambiente de destino) possam ser identificadas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Build de vários estágios

A

é um recurso disponível no Docker 17.05 e posteriores que ajuda a reduzir o tamanho das imagens finais. Por exemplo, uma imagem base grande, que contém o SDK, pode ser usada para compilar e publicar e, em seguida, uma pequena imagem base somente de runtime pode ser usada para hospedar o aplicativo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Repositório

A

uma coleção de imagens do Docker relacionadas, rotulada com uma marcação que indica a versão da imagem. Alguns repositórios contêm diversas variantes de uma imagem específica, como uma imagem que contém o SDKs (mais pesada), uma imagem que contém somente runtimes (mais leves) etc. Estas variantes podem ser marcadas com tags. Um único repositório pode conter variantes de plataforma, como uma imagem do Linux e uma imagem do Windows.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Registro

A

um serviço que dá acesso aos repositórios. O registro padrão para as imagens mais públicas é o Docker Hub (propriedade da Docker como uma organização). Um registro geralmente contém repositórios de várias equipes. As empresas geralmente têm registros privados para armazenar e gerenciar as imagens que criaram. O Registro de Contêiner do Azure é outro exemplo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Imagem de vários arcos

A

para várias arquiteturas (ou várias plataformas), é um recurso do Docker que simplifica a seleção da imagem apropriada, de acordo com a plataforma em que o Docker está em execução. Por exemplo, quando um Dockerfile solicita uma imagem base FROM mcr.microsoft.com/dotnet/sdk:7.0 do registro, ele realmente obtém 7.0-nanoserver-ltsc2022, 7.0-nanoserver-1809 ou 7.0-bullseye-slim, dependendo do sistema operacional e da versão em que o Docker está em execução.

17
Q

Docker Hub

A

um registro público para carregar imagens e trabalhar com elas. O Docker Hub hospeda imagens do Docker, registros públicos ou privados, cria gatilhos e ganchos da Web e integra-se com o GitHub e o Bitbucket.

18
Q

Docker Trusted Registry (DTR)

A

serviço de Registro do Docker que pode ser instalado localmente para funcionar no datacenter e na rede da organização. É conveniente para imagens privadas que devem ser gerenciadas dentro da empresa. O Docker Trusted Registry é parte do produto Docker Datacenter.

19
Q

Docker Desktop

A

ferramentas de desenvolvimento para Windows e macOS para criação, execução e teste de contêineres localmente. O Docker Desktop para Windows fornece os ambientes de desenvolvimento para Linux e contêineres do Windows. O host do Docker do Linux no Windows é baseado em uma máquina virtual Hyper-V. O host para contêineres do Windows se baseia diretamente no Windows. O Docker Desktop para Mac baseia-se na estrutura do Hipervisor da Apple e no hipervisor xhyve, que fornece uma máquina virtual host do Docker do Linux no macOS. O Docker Desktop para Windows e para Mac substitui a Caixa de Ferramentas do Docker, que foi baseada no Oracle VirtualBox.

20
Q

Compose

A

uma ferramenta de linha de comando e formato de arquivo YAML com metadados para definir e executar aplicativos de vários contêineres. Você define um único aplicativo com base em várias imagens com um ou mais arquivos .yml que podem substituir valores dependendo do ambiente. Depois de criar as definições, você pode implantar todo o aplicativo de vários contêineres com um único comando (docker-compose up), que cria um contêiner por imagem no host do Docker.

21
Q

Cluster

A

uma coleção de hosts do Docker expostos como um único host virtual, para que o aplicativo possa ser dimensionado para várias instâncias dos serviços distribuídos em vários hosts do cluster. Os clusters do Docker podem ser criados com o Kubernetes, o Azure Service Fabric, o Docker Swarm e o Mesosphere DC/OS.

22
Q

Orquestrador

A

uma ferramenta que simplifica o gerenciamento de clusters e hosts do Docker. Os orquestradores permitem gerenciar imagens, contêineres e hosts por meio de uma CLI (interface de linha de comando) ou uma interface do usuário gráfica. É possível gerenciar a rede de contêiner, configurações, balanceamento de carga, descoberta de serviço, alta disponibilidade, configuração de host do Docker e muito mais. Um orquestrador é responsável por executar, distribuir, dimensionar e reparar de cargas de trabalho em uma coleção de nós. Normalmente, produtos de orquestrador são os mesmos que fornecem infraestrutura de cluster, como Kubernetes e Azure Service Fabric, além de outras ofertas no mercado.

23
Q

Como funciona o docker?

A

1- Ao usar o Docker, um desenvolvedor cria um aplicativo ou serviço e empacota a ele e suas dependências em uma imagem de contêiner. Uma imagem é uma representação estática do aplicativo ou do serviço e de sua configuração e dependências.
2- Para executar o aplicativo ou o serviço, uma instância da imagem do aplicativo é criada para criar um contêiner, que estará em execução no host do Docker. Inicialmente, os contêineres são testados em um ambiente de desenvolvimento ou em um computador.
3- Os desenvolvedores devem armazenar imagens em um Registro, que funciona como uma biblioteca de imagens e é necessário ao implantar em orquestradores de produção. O Docker mantém um Registro público por meio do Hub do Docker; outros fornecedores fornecem os Registros para diferentes coleções de imagens, incluindo Registro de Contêiner do Azure. Como alternativa, as empresas podem ter um Registro privado local para suas próprias imagens do Docker.
4- o Registro é como uma estante de livros em que as imagens são armazenadas e ficam disponíveis para serem retiradas para a criação de contêineres para executar os serviços ou aplicativos Web. Há registros do Docker privados locais e na nuvem pública. O Hub do Docker é um registro público mantido pelo Docker, junto com o Registro Confiável do Docker, uma solução empresarial, o Azure oferece ao Registro de Contêiner do Azure. AWS, Google e outros também têm Registros de contêiner.
5- olocar imagens em um Registro permite a você armazenar os bits de aplicativo estáticos e imutáveis, incluindo todas as suas dependências em um nível de estrutura. A versão dessas imagens podem ser controladas e elas podem ser implantadas em vários ambientes e, portanto, fornecem uma unidade de implantação consistente.

Registros de imagem privados, hospedados localmente ou na nuvem, são recomendados quando:

Suas imagens não devem ser compartilhadas publicamente devido à confidencialidade.

Você deseja ter latência de rede mínima entre suas imagens e o ambiente de implantação escolhido. Por exemplo, se o ambiente de produção for uma nuvem do Azure, você provavelmente desejará armazenar as imagens no Registro de Contêiner do Azure para que a latência de rede seja mínima. De maneira semelhante, se seu ambiente de produção for local, tenha um Registro Confiável do Docker local disponível na mesma rede local.