Aprendizagem do Docker - segundos conceitos e princípios básicos

1. Introdução ao Docker

O Docker é um tipo de encapsulamento de contêineres Linux, fornecendo uma interface de uso de contêiner simples e fácil de usar. Atualmente, é a solução de contêiner Linux mais popular.

O uso de contêineres Linux para implantar aplicativos é chamado contêinerização, e os contêineres Linux são outra tecnologia de virtualização desenvolvida pelo Linux.Em termos simples, os contêineres Linux não simulam um sistema operacional completo, mas isolam processos, o que equivale a Uma camada protetora é aplicada fora do processo normal. Para o processo dentro do contêiner, todos os recursos com os quais ele entra em contato são virtuais, a fim de obter isolamento do sistema subjacente.

A conteinerização está se tornando cada vez mais popular porque os contêineres:

  • Flexível: Até as aplicações mais complexas podem ser contêineres.
  • Leve: o contêiner utiliza e compartilha o núcleo do host.
  • Intercambiável: você pode implantar atualizações e upgrades instantaneamente.
  • Portátil: você pode criar localmente, implantar na nuvem e executar em qualquer lugar.
  • Escalável: você pode adicionar e distribuir automaticamente cópias de contêineres.
  • Empilhável: você pode empilhar serviços verticalmente e instantaneamente.

O Docker é uma plataforma para desenvolvedores e administradores de sistema desenvolver, implantar e executar aplicativos usando contêineres, facilitando a implantação de aplicativos.

O Docker empacota o aplicativo e suas dependências em um único arquivo. A execução desse arquivo irá gerar um contêiner virtual. O programa é executado neste contêiner virtual como se estivesse sendo executado em uma máquina física real. Com o Docker, não há necessidade de se preocupar com questões ambientais.

De um modo geral, a interface do Docker é bastante simples, os usuários podem criar e usar contêineres facilmente e colocar seus próprios aplicativos nos contêineres. Os contêineres também podem executar gerenciamento, cópia, compartilhamento e modificação de versões, assim como o gerenciamento de código comum.

1. As vantagens e desvantagens do Docker em comparação com a virtualização tradicional

Vantagens:

  • O Docker inicia rapidamente no segundo nível. A máquina virtual geralmente leva alguns minutos para iniciar.
  • O Docker requer menos recursos.O Docker realiza virtualização no nível do sistema operacional.Os recipientes do Docker e o kernel interagem quase sem perda de desempenho.O desempenho é melhor do que a virtualização através da camada Hypervisor e da camada do kernel.
  • O Docker é mais leve e a arquitetura do Docker pode compartilhar uma biblioteca de aplicativos principal e compartilhada, que ocupa muito pouca memória. No mesmo ambiente de hardware, o número de imagens executadas pelo Docker é muito maior que o número de máquinas virtuais e a taxa de utilização do sistema é muito alta.
  • Alta disponibilidade e capacidade de recuperação: o suporte de alta disponibilidade do Docker para negócios é obtido através de uma rápida reimplementação. A virtualização possui um mecanismo de garantia maduro, testado por práticas de produção como balanceamento de carga, alta disponibilidade, tolerância a falhas, migração e proteção de dados.A VMware pode prometer 99,999% de alta disponibilidade de máquinas virtuais para garantir a continuidade dos negócios.
  • Criação e exclusão rápidas: a criação da virtualização está no nível mínimo e a criação de contêineres do Docker no segundo nível.A iteração rápida do Docker determina que o desenvolvimento, o teste e a implantação podem economizar muito tempo.
  • Entrega e implantação: a máquina virtual pode obter a consistência da entrega do ambiente por meio da imagem, mas a distribuição da imagem não pode ser sistemática. O Docker registra o processo de criação de contêiner no Dockerfile, que pode obter distribuição rápida e implantação rápida no cluster.

Não é suficiente:

  • Comparado com as máquinas virtuais, o isolamento do docker é mais fraco, o docker pertence ao isolamento entre processos e as máquinas virtuais podem obter isolamento no nível do sistema
  • Segurança: A segurança do docker também é mais fraca. A raiz do inquilino do Docker é igual à raiz da máquina host.Uma vez que o usuário no contêiner é atualizado da autoridade de usuário comum para a autoridade de raiz, ele possui diretamente a autoridade de raiz da máquina host e pode executar operações ilimitadas. As permissões de raiz do inquilino da máquina virtual e as permissões da máquina virtual raiz da máquina host são separadas, e a máquina virtual usa a tecnologia de isolamento de hardware ring-1, como o VT-d e o VT-x da Intel, que podem impedir a penetração da máquina virtual entre si. Interação, e o contêiner ainda não teve nenhuma forma de isolamento de hardware, o que torna o contêiner vulnerável a ataques
  • Gerenciamento: As ferramentas de gerenciamento centralizado do Docker não estão maduras. Várias tecnologias de virtualização possuem ferramentas de gerenciamento avançadas, como o VMware vCenter, que oferece recursos completos de gerenciamento de máquinas virtuais

2. Vantagens dos contêineres em comparação com as máquinas virtuais

Características Container Máquina virtual
Iniciar Segundo nível Nível minuto
Uso do disco rígido Geralmente MB Geralmente GB
Desempenho Perto do nativo Mais fraco que
Suporte do sistema Máquina única suporta milhares de contêineres Geralmente dezenas

2. O que posso fazer com o Docker?

Entregue seus aplicativos de maneira rápida e consistente

O Docker permite que os desenvolvedores trabalhem em um ambiente padronizado usando contêineres locais que fornecem aplicativos e serviços, simplificando assim o ciclo de vida do desenvolvimento. Os contêineres são ideais para fluxos de trabalho de integração contínua e entrega contínua (CI / CD).

Considere o seguinte cenário de exemplo:

Os desenvolvedores escrevem código localmente e usam os contêineres do Docker para compartilhar seu trabalho com os colegas.
Eles usam o Docker para enviar seus aplicativos ao ambiente de teste e executar testes manuais e automatizados.
Quando os desenvolvedores encontram erros, eles podem corrigi-los no ambiente de desenvolvimento e reimplementá-los no ambiente de teste para teste e verificação.
Após a conclusão do teste, o patch só precisa enviar a imagem atualizada para o ambiente de produção.

Implantação e expansão responsivas

As características do Docker, baseadas na plataforma de contêiner, o tornam altamente portátil para aplicativos de suporte. Os contêineres do Docker podem ser executados nos laptops locais, máquinas físicas ou virtuais dos desenvolvedores em data centers, provedores de nuvem ou ambientes híbridos.

A portabilidade e os recursos leves do Docker também facilitam o gerenciamento dinâmico de unidades de aplicativos e a expansão ou remoção instantânea de aplicativos e serviços de acordo com as necessidades da empresa.

Execute mais unidades de aplicativos no mesmo hardware

O Docker é leve e rápido. Ele fornece uma alternativa viável e econômica às máquinas virtuais baseadas em hipervisor, para que você possa usar mais capacidade de computação para atingir as metas de negócios. O Docker é ideal para ambientes de alta densidade e implantações de pequena a média escala que requerem menos recursos para concluir mais trabalho.

Três, arquitetura Docker

O Docker usa uma arquitetura cliente / servidor (C / S). O cliente do Docker se comunica com o daemon do Docker, responsável por criar, executar e distribuir os contêineres do Docker. O cliente e daemon do Docker podem ser executados no mesmo sistema ou você pode conectar o cliente do Docker a um daemon do Docker remoto. Os clientes Docker e daemons usam APIs REST para se comunicar através de soquetes UNIX ou interfaces de rede.

Insira a descrição da imagem aqui

1. Cliente Docker

Docker Client, também conhecido como Docker Client. Na verdade, é a ferramenta da interface da linha de comandos (CLI) fornecida pelo Docker, que é a principal maneira de muitos usuários do Docker interagirem com o Docker. O cliente pode criar, executar e interromper aplicativos e também pode interagir com o Docker_Host remotamente. O cliente Docker mais usado é o comando docker.Podemos criar e executar facilmente contêineres Docker no host por meio do comando docker.

2. Docker Daemon

O Docker Daemon é um componente do servidor que é executado como um serviço em segundo plano do Linux, que é o principal processo em segundo plano do Docker, também conhecido como daemon. Ele é responsável por responder às solicitações do Docker Client e, em seguida, converter essas solicitações em chamadas do sistema para concluir as operações de gerenciamento de contêiner. O processo iniciará um servidor de API em segundo plano, responsável por receber a solicitação enviada pelo Docker Client. A solicitação recebida será despachada por uma rota no Docker Daemon e a função específica executará a solicitação.

3. Registros do Docker

Os Registros do Docker são armazéns que armazenam imagens do Docker. O Docker Hub é um registro público que qualquer pessoa pode usar, e o Docker está configurado para localizar imagens no Docker Hub por padrão. O Docker suporta a execução de repositórios privados.

Uso docker pullou docker runde comando, a imagem desejada a partir da extracção repositórios configurado. Use docker pusho comando, a imagem será carregado para o repositório de configuração.

4. Objetos do Docker

Imagens

A imagem do Docker pode ser considerada como um sistema de arquivos especial.Além de fornecer os programas, bibliotecas, recursos e arquivos de configuração exigidos pelo tempo de execução do contêiner, também contém alguns parâmetros de configuração (como volumes anônimos, variáveis ​​de ambiente , Usuários, etc.). A imagem não contém dados dinâmicos e seu conteúdo não será alterado após a construção. Podemos pensar na imagem do Docker como um modelo somente leitura, através do qual você pode criar contêineres do Docker.

Existem várias maneiras de gerar imagens:

  • Comece a criar imagens do zero
  • Baixe e use imagens existentes criadas por outras pessoas
  • Crie uma nova imagem em uma imagem existente

Contentores

Os contêineres do Docker estão executando instâncias de imagens do Docker e são os objetos que realmente executam os programas do projeto, consomem recursos do sistema e prestam serviços. O Docker Container fornece o ambiente de hardware do sistema, podemos usar as Imagens do Docker feitas no disco do sistema, além do código do projeto que escrevemos, você pode fornecer serviços através do comando run.

Serviços

O serviço permite que os contêineres sejam estendidos por vários daemons do Docker, que trabalham juntos como um grupo com vários gerentes e trabalhadores. Cada membro é um daemon do Docker e os processos usam a API do Docker para se comunicar. Os serviços permitem definir o estado necessário, como o número de cópias do serviço que devem estar disponíveis a qualquer momento. Por padrão, o serviço executa o balanceamento de carga entre todos os nós do trabalhador.

Publicado 40 artigos originais · 25 elogios · mais de 100.000 visualizações

Acho que você gosta

Origin blog.csdn.net/yym373872996/article/details/105677983
Recomendado
Clasificación