Parte 1 do Docker de aprendizagem: o bĂĄsico

As tecnologias de conteinerização de aplicativos sĂŁo amplamente usadas no desenvolvimento de software e na anĂĄlise de dados. Essas tecnologias ajudam a tornar os aplicativos mais seguros, facilitam a implantação e aprimoram sua escalabilidade. O crescimento e o desenvolvimento de tecnologias de contĂȘineres podem ser considerados uma das tendĂȘncias mais importantes do nosso tempo.

O Docker Ă© uma plataforma projetada para desenvolver, implantar e executar aplicativos em contĂȘineres. A palavra "Docker" recentemente se tornou um sinĂŽnimo da palavra "containerization". E se vocĂȘ ainda nĂŁo estĂĄ usando o Docker, mas ao mesmo tempo trabalha ou trabalha nas ĂĄreas de desenvolvimento de aplicativos ou anĂĄlise de dados, o Docker Ă© o que vocĂȘ certamente encontrarĂĄ no futuro.

→ Parte 1: o básico
→ Parte 2: termos e conceitos
→ Parte 3: arquivos Dockerfile
→ Parte 4: reduzindo o tamanho das imagens e acelerando sua montagem
→ Parte 5: equipes
→ Parte 6: trabalhando com dados

imagem

Se vocĂȘ ainda nĂŁo sabe o que Ă© o Docker, agora tem a chance de dar o primeiro passo para entender esta plataforma. Ou seja, tendo dominado este material, vocĂȘ entenderĂĄ o bĂĄsico do Docker e simultaneamente prepararĂĄ a pizza.

MetĂĄforas e Docker


Somos constantemente confrontados com metĂĄforas. Se vocĂȘ olhar para o dicionĂĄrio de Ozhegov, a metĂĄfora Ă© "uma comparação figurativa oculta, comparando um objeto, um fenĂŽmeno a outro". As metĂĄforas nos ajudam a compreender a essĂȘncia de novos fenĂŽmenos para nĂłs. Por exemplo, os contĂȘineres virtuais podem ser comparados aos contĂȘineres de plĂĄstico comuns. Essa comparação, comparando as propriedades de contĂȘineres comuns jĂĄ conhecidos por nĂłs com as propriedades de contĂȘineres virtuais, ajudarĂĄ vocĂȘ a conhecĂȘ-los e entender sua essĂȘncia.


Container

Como vocĂȘ entende, iniciaremos a conversa sobre o Docker com o conceito de "contĂȘiner".

Container


Como um contĂȘiner plĂĄstico comum, um contĂȘiner Docker tem as seguintes caracterĂ­sticas:

  1. VocĂȘ pode armazenar algo nele. Algo pode estar no contĂȘiner ou no exterior.
  2. Pode ser carregado. VocĂȘ pode usar o contĂȘiner do Docker no computador local, no computador de um colega, em um servidor de provedor de serviços em nuvem (como a AWS). Isso torna os contĂȘineres do Docker semelhantes aos contĂȘineres comuns, nos quais, por exemplo, eles transportam vĂĄrias bugigangas em forma de coração quando se mudam para uma nova casa.
  3. É conveniente colocar algo no contĂȘiner e Ă© conveniente tirar algo dele. Um contĂȘiner comum tem uma tampa nas travas, que devem ser removidas para colocar algo no contĂȘiner ou remover algo dele. Os contĂȘineres do Docker tĂȘm algo semelhante representando sua interface, ou seja, mecanismos que lhes permitem interagir com o mundo externo. Por exemplo, um contĂȘiner possui portas que podem ser abertas para que um aplicativo em execução no contĂȘiner possa ser acessado a partir de um navegador. VocĂȘ tambĂ©m pode trabalhar com o contĂȘiner usando ferramentas de linha de comando.
  4. Se vocĂȘ precisar de um contĂȘiner, poderĂĄ solicitĂĄ-lo na loja online. Um contĂȘiner vazio pode ser comprado, por exemplo, no site da Amazon. Os contĂȘineres chegam a esta loja de fabricantes que os fabricam em grandes quantidades usando moldes. No caso de contĂȘineres do Docker, o que pode ser comparado com o molde, a imagem do contĂȘiner, Ă© armazenado em um repositĂłrio especial. Se vocĂȘ precisar de um determinado contĂȘiner, poderĂĄ fazer o download da imagem correspondente do repositĂłrio e, usando-o, criar esse contĂȘiner.

Obviamente, recipientes de plĂĄstico, diferentemente dos recipientes do Docker, ninguĂ©m o enviarĂĄ de graça e, quando vocĂȘ os receber, eles estarĂŁo vazios. Mas sempre hĂĄ algo interessante nos contĂȘineres do Docker.

Organismos vivos


Outra abordagem para pensar sobre os contĂȘineres do Docker Ă© comparĂĄ-los com instĂąncias de organismos vivos. Uma "instĂąncia" Ă© algo que existe de alguma forma. Este nĂŁo Ă© apenas cĂłdigo. Este Ă© o cĂłdigo que causou a existĂȘncia de algo maior que ele, algo, figurativamente falando, vivo. Como outros organismos vivos, instĂąncias de recipientes nascem, vivem e morrem.


Monstro convocado para a vida

Os contĂȘineres do Docker sĂŁo imagens animadas do Docker.

De software


Os contĂȘineres do Docker podem ser comparados nĂŁo apenas aos contĂȘineres comuns ou aos organismos vivos. Eles podem ser comparados com os programas. Afinal, contĂȘineres sĂŁo programas. E, em um nĂ­vel fundamental, um contĂȘiner Ă© um conjunto de instruçÔes que sĂŁo executadas em algum processador, processando algum tipo de dados.


Um contĂȘiner Ă© um programa

Em tempo de execução, o contĂȘiner do Docker geralmente executa algum tipo de programa dentro dele. Ela realiza certas açÔes no contĂȘiner, ou seja, faz algo Ăștil.

Por exemplo, o cĂłdigo executado em um contĂȘiner do Docker pode ter enviado o texto que vocĂȘ estĂĄ lendo para o seu computador. É bem possĂ­vel que o cĂłdigo executado no contĂȘiner do Docker receba os comandos de voz que vocĂȘ fornece ao Amazon Alexa e os converta em instruçÔes para alguns outros programas que funcionam em outros contĂȘineres.

Usando o Docker, vocĂȘ pode executar vĂĄrios contĂȘineres no mesmo computador ao mesmo tempo. E, como qualquer outro programa, os contĂȘineres do Docker podem ser iniciados, parados, excluĂ­dos. VocĂȘ pode examinar o conteĂșdo e criĂĄ-lo.

Conceitos do Docker


MachinesMĂĄquinas virtuais


Os antecessores dos contĂȘineres do Docker eram mĂĄquinas virtuais. Uma mĂĄquina virtual, como um contĂȘiner, isola o aplicativo e suas dependĂȘncias do ambiente externo. No entanto, os contĂȘineres do Docker oferecem vantagens sobre as mĂĄquinas virtuais. Assim, eles consomem menos recursos, sĂŁo muito fĂĄceis de transferir, iniciam mais rapidamente e atingem um estado saudĂĄvel. Neste artigo, vocĂȘ pode encontrar uma comparação detalhada de contĂȘineres e mĂĄquinas virtuais.

▍ Imagem do contĂȘiner do Docker


JĂĄ falamos sobre "imagens" acima. O que Ă© isso Boa pergunta O que o Docker chama de termo "imagem" ou, em inglĂȘs, "imagem" nĂŁo Ă© o mesmo que, por exemplo, fotografia (esse Ă© um dos significados da palavra "imagem").


Imagens do Docker nĂŁo sĂŁo fotos

As imagens dos contĂȘineres do Docker podem ser comparadas com desenhos, cortadores de biscoitos ou moldes para a fabricação de produtos plĂĄsticos. As imagens sĂŁo modelos imutĂĄveis ​​usados ​​para criar os mesmos contĂȘineres.


Os contĂȘineres do Docker parecem cortadores de biscoito

A imagem do contĂȘiner do Docker contĂ©m a imagem do sistema operacional base, o cĂłdigo do aplicativo, a biblioteca da qual depende. Tudo isso Ă© organizado como uma Ășnica entidade, com base na qual vocĂȘ pode criar um contĂȘiner.

▍ Dockerfile


O Dockerfile contĂ©m um conjunto de instruçÔes, apĂłs o qual o Docker monta a imagem do contĂȘiner. Este arquivo contĂ©m uma descrição da imagem base, que serĂĄ a camada da imagem original. Entre as imagens de base oficiais populares, destacam-se python , ubuntu , alpine .

VocĂȘ pode adicionar camadas adicionais Ă  imagem do contĂȘiner, em cima da imagem base. Isso Ă© feito de acordo com as instruçÔes do Dockerfile . Por exemplo, se o Dockerfile descreve uma imagem que vocĂȘ planeja usar para resolver tarefas de aprendizado de mĂĄquina, ele pode conter instruçÔes para incluir as bibliotecas NumPy, Pandas e Scikit-learn na camada intermediĂĄria dessa imagem.

E, finalmente, a imagem pode conter, alĂ©m de todas as outras, outra camada fina, os dados armazenados nos quais podem ser alterados. Essa Ă© uma pequena camada de volume que contĂ©m o programa que vocĂȘ planeja executar no contĂȘiner.

Container Container Docker


Para iniciar o contĂȘiner, precisamos primeiro da imagem do contĂȘiner e, em segundo lugar, do ambiente em que o Docker estĂĄ instalado, capaz de entender um comando do docker run image_name formulĂĄrios, docker run image_name . Este comando cria um contĂȘiner a partir da imagem e o inicia.

▍ RepositĂłrio de contĂȘineres


Se vocĂȘ deseja permitir que outras pessoas criem contĂȘineres com base em sua imagem, envie-a para a nuvem. O maior repositĂłrio desse tipo Ă© o repositĂłrio do Docker Hub . É usado ao trabalhar com o Docker por padrĂŁo.

JĂĄ discutimos muitas coisas. É hora de juntar tudo e comparar o trabalho com os contĂȘineres do Docker com a pizza.

Cozinhando com Docker



Pizza pronta Ă© um recipiente

  • Uma receita de pizza Ă© um Dockerfile . Ele nos diz o que precisa ser feito para atingir a meta, ou seja, obter um contĂȘiner de trabalho.
  • Os ingredientes que compĂ”em a pizza sĂŁo camadas da imagem do recipiente. Para a nossa pizza, vocĂȘ precisarĂĄ de bolo, molho e queijo.

Se vocĂȘ colocar a receita e os ingredientes em cima da mesa, acontece que em um sĂł lugar tudo o que vocĂȘ precisa Ă© coletado para cozinhar pizza. Tudo isso pode ser comparado com a imagem do contĂȘiner do Docker.
Na receita ( Dockerfile ), vocĂȘ pode descobrir qual sequĂȘncia de açÔes vocĂȘ precisa executar para cozinhar pizza:

  • O Korzh estĂĄ pronto para uso, nĂŁo o alteramos. Pode ser comparado com a imagem bĂĄsica do sistema operacional Ubuntu. Esta Ă© a camada inferior da imagem, Ă© adicionada Ă  imagem primeiro.
  • Em seguida, o queijo Ă© adicionado ao bolo. É como adicionar uma segunda camada Ă  imagem como uma biblioteca externa como o NumPy.
  • Em seguida, por cima do queijo, adicione o molho. Este Ă© o cĂłdigo do aplicativo que deve ser executado no contĂȘiner.

Agora Ă© hora de cozinhar pizza no forno.


Oven Ă© uma plataforma Docker

O forno no qual a pizza Ă© cozida lembra a plataforma Docker. O forno estĂĄ instalado na cozinha, com a sua ajuda vocĂȘ pode cozinhar alimentos. Da mesma forma, o Docker Ă© instalado em um computador para "cozinhar" recipientes.

O forno, se for elĂ©trico, Ă© ligado girando o botĂŁo do controlador de temperatura. O docker run image_name Ă© como um controlador de temperatura, cuja “rotação” faz com que o sistema crie e inicie um contĂȘiner.

Pizza pronta - este Ă© o recipiente do Docker.

E comer pizza significa usar o aplicativo em execução no recipiente.

Como fazer pizza, a preparação para o trabalho dos contĂȘineres do Docker leva algum tempo, mas no final e nos dois casos, resulta algo saboroso.

SumĂĄrio


Aqui, em um nĂ­vel conceitual, abordamos o bĂĄsico do Docker. Esperamos que as comparaçÔes apresentadas aqui ajudem vocĂȘ a entender o que Ă© o Docker e a sentir o valor das metĂĄforas no domĂ­nio das novas tecnologias.

Caros leitores! Esta postagem é uma tradução do primeiro artigo da série de tutoriais do Docker. Segundo o autor, um total de 5 desses materiais estå planejado para ser lançado. A segunda , terceira e quarta partes jå estão prontas. Conte-nos, vale a pena traduzir os seguintes artigos desta série?

Source: https://habr.com/ru/post/pt438796/


All Articles