Imagens e con­têi­ne­res Docker asseguram que apli­ca­ções sejam exe­cu­ta­das em ambientes isolados, e que esses mesmos ambientes possam ser iniciados. Por isso, eles são con­si­de­ra­dos os dois prin­ci­pais com­po­nen­tes da pla­ta­forma de vir­tu­a­li­za­ção Docker, assim como do ecos­sis­tema Docker como um todo. Nossa com­pa­ra­ção Docker Image vs. Container des­trin­cha esses dois elementos e apresenta se­me­lhan­ças e di­fe­ren­ças entre os conceitos.

Cloud Compute Engine da IONOS

Empresas de médio e grande porte optam pela nuvem da Alemanha. Serviços IaaS e PaaS são para campeões.

  • Seguro
  • Confiável
  • Flexível

Contêiner Docker

Um contêiner Docker (ou container Docker) é uma unidade isolada, destinada à execução de apli­ca­ções e de suas de­pen­dên­cias. Nesse aspecto, ele é bastante similar a uma máquina virtual (VM), apesar de existem im­por­tan­tes di­fe­ren­ças entre ambos. A principal delas diz respeito ao nível de iso­la­mento, que é um pouco menor em con­têi­ne­res, já que máquinas virtuais emulam hardwares completos, não ne­ces­si­tando de sistemas adi­ci­o­nais. Con­têi­ne­res, por outro lado, com­par­ti­lham tanto o sistema ope­ra­ci­o­nal quanto o núcleo do sistema host. Esse tipo de estrutura oferece vantagens ao facilitar e agilizar o de­sen­vol­vi­mento de apli­ca­ções. Uma grande des­van­ta­gem, contudo, faz com que ela não seja indicada a todo tipo de aplicação.

Con­têi­ne­res consomem menos recursos do que máquinas virtuais. Assim sendo, eles registram melhores níveis de de­sem­pe­nho e podem ser iniciados mais ra­pi­da­mente. Con­têi­ne­res também são mais portáteis do que máquinas virtuais, pois só requerem a execução da aplicação e o trans­porte das res­pec­ti­vas de­pen­dên­cias. A baixa taxa de so­bre­carga de con­têi­ne­res Docker também tem a vantagem de pos­si­bi­li­tar a execução si­mul­tâ­nea de diversos con­têi­ne­res por um mesmo sistema.

A maior des­van­ta­gem desse nível mais baixo de iso­la­mento diz respeito à segurança da estrutura: con­têi­ne­res são menos seguros do que máquinas virtuais. Como todos os con­têi­ne­res têm igual acesso ao núcleo do sistema ope­ra­ci­o­nal, basta que um deles seja infectado para que im­por­tan­tes dados sejam afetados. Dessa forma, re­co­men­da­mos a uti­li­za­ção de máquinas virtuais por todos aqueles que de­sen­vol­vem apli­ca­ções que exigem altos níveis de proteção.

Dica

Como con­têi­ne­res Docker possuem todas as de­pen­dên­cias ne­ces­sá­rias, eles podem facilitar a operação de apli­ca­ções web para você e para os seus usuários finais. Configure o Cloud Server da IONOS para que o Docker já venha instalado no seu servidor em nuvem.

Imagem Docker

Uma imagem Docker (ou Docker image) é um template somente leitura para a criação de um contêiner, possuindo todas as ins­tru­ções ne­ces­sá­rias para tal. Por outro lado, um contêiner Docker pode ser com­pre­en­dido como a ins­tân­cias em execução de uma imagem Docker. Dentro de cada imagem Docker é possível encontrar todas as de­pen­dên­cias da aplicação a ser executada, o ambiente ne­ces­sá­rio para a execução e o código referente à aplicação, além da aplicação em si. Assim, o papel destes templates, ou seja, dessas imagens, é gerar um ambiente de execução con­sis­tente e re­pro­du­zí­vel para uma aplicação.

Imagens Docker costumam ser ar­ma­ze­na­das como arquivos binários, mas também podem ser salvas em formato legível por humanos. Os arquivos baseados em texto nelas contidos são chamados de Doc­ker­fi­les. Eles carregam todas as ins­tru­ções ne­ces­sá­rias para a res­tau­ra­ção da res­pec­tiva imagem. Tanto imagens Docker quanto Doc­ker­fi­les são portáteis, o que significa que eles podem ser fa­cil­mente trans­por­ta­dos de um sistema para outro. Dessa forma, imagens Docker podem ser ar­ma­ze­na­das nos re­po­si­tó­rios de registros do Docker, como no Docker Hub, e dis­po­ni­bi­li­za­das para download, para os demais de­sen­vol­ve­do­res. Ins­tân­cias de con­têi­ne­res em execução também podem ser salvas como arquivos de imagem, por meio da uti­li­za­ção do comando Docker docker commit.

Dica

Mantenha o seu ambiente de de­sen­vol­vi­mento sempre or­ga­ni­zado e atu­a­li­zado, para garantir que os seus projetos sejam exe­cu­ta­dos com efi­ci­ên­cia máxima. Se você já trabalha com Docker há muito tempo, ou se já fez uso de inúmeros con­têi­ne­res e imagens di­fe­ren­tes, cer­ta­mente estará ar­ma­ze­nando alguns que não mais são ne­ces­sá­rios. Para liberar precioso espaço no seu disco, aprenda como excluir con­têi­ne­res Docker e como remover imagens Docker.

Qual é a diferença entre imagem e contêiner Docker?

Imagens e con­têi­ne­res Docker podem até parecer a mesma coisa, mas possuem formatos fun­da­men­tal­mente di­fe­ren­tes. Como já explicado, uma imagem é um template somente leitura para um contêiner, que inclui todos os arquivos, de­pen­dên­cias e ambientes de execução ne­ces­sá­rios para a execução da res­pec­tiva aplicação, além da aplicação em si. Já um contêiner é a instância em execução de um arquivo de imagem, assim como um programa em execução é uma instância dos res­pec­ti­vos arquivos de programa ins­ta­la­dos no disco rígido.

Em outras palavras, uma imagem Docker é um arquivo binário ar­ma­ze­nado no sistema de arquivos do com­pu­ta­dor host, enquanto um contêiner Docker é um processo em execução na memória RAM do sistema. Assim como uma imagem Docker é usada para criar um contêiner, um contêiner em execução pode ser salvo como imagem. Isso pode ser feito para que o resultado gerado seja usado para replicar o mesmo contêiner.

Dica

Nossa com­pa­ra­ção Docker Image vs. Container pode até ser um começo, mas o Docker abrange muitos outros conceitos, e não somente os de imagem e contêiner. Com o passar do tempo, essa pla­ta­forma de vir­tu­a­li­za­ção de­sen­vol­veu um ver­da­deiro ecos­sis­tema. Ele inclui di­fe­ren­tes recursos e programas igual­mente úteis, como o Docker Hub, o Swarm e o Machine. Explore o nosso artigo “Ecos­sis­tema de fer­ra­men­tas Docker” se você quiser se apro­fun­dar no tema.

Ir para o menu principal