Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

172
Visualizações
What is the overhead of creating docker images?

I'm exploring using docker so that we deploy new docker images instead of specific file changes, so all of the needs of the application come with each deployment etc.

Question 1:

If I add a new application file, say 10 MB, to a docker image when I deploy the new image, using the tools in Docker tool box, will this require the deployment of an entirely new image to my containers or do docker deployments just take the difference between the 2, similar to git version control?

Another way to put it, I looked on a list of docker base images and saw a version of ubuntu that is 188 MB. If I commit a new application to a docker image, using this base image, will my docker containers need to pull the full 188 MB, which they are already running, plus the application or is there a differential way of just getting what has changed?

Supplementary Question

Am I correct in assuming when using docker, deploying images is the intended approach? Meaning any new changes should require a new image deployment so that images are treated as immutable? When I was using AWS we followed this approach with AMI (Amazon Machine Images) but storing AMIs had low overhead, for docker I don't know yet.

Or is it a better practice to deploy dockerfiles and have the new image be built on the container itself?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Docker uses a layered union filesystem, only one copy of a layer will be pulled by a docker engine and stored on its filesystem. When you build an image, docker will check its layer cache to see if the same parent layer and same command have been used to build an existing layer, and if so, the cache is reused instead of building a new layer. Once any step in the build creates a new layer, all following steps will create new layers, so the order of your Dockerfile matters. You should add frequently changing steps to the end of the Dockerfile so the earlier steps can be cached.

Therefore, if you use a 200MB base image, have 50MB of additions, but only 10MB are new additions at the end of your Dockerfile, you'd push 250MB the first time to a docker engine, but only 10MB to an engine that already had a previous copy of that image, or 50MB to an engine that just had the 200MB base image.

The best practice with images is to build them once, push them to a registry (either self hosted using the registry image, cloud hosted by someone like AWS, or on Docker Hub), and then pull that image to each engine that needs to run it.

For more details on the layered filesystem, see https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/

over 4 years ago · Santiago Trujillo Relatório

0

You can also work a little, in order to create smaller images. You can use Alpine or Busybox instead of using bigger Ubuntu, Debian or Bitnami (Debian light).

A smaller image is more secure as less tools are available.

Some reading

http://blog.xebia.com/how-to-create-the-smallest-possible-docker-container-of-any-image/

https://www.dajobe.org/blog/2015/04/18/making-debian-docker-images-smaller/

You have 2 great tools in order to make smaller docker images

https://github.com/docker-slim/docker-slim

and

https://github.com/mvanholsteijn/strip-docker-image

Some examples with docker-slim

https://hub.docker.com/r/k3ck3c/grafana-xxl.slim/

shows

size before -> 357.3 MB

and using docker-slim -> 18.73 MB

or about simh

https://hub.docker.com/r/k3ck3c/simh_bitnami.slim/

size 5.388 MB

when the original

k3ck3c/simh_bitnami 88.86 MB

a popular netcat image

chilcano/netcat is 135.2 MB

when a netcat based on Alpine is 7.812 MB

and based on busybox will need 2 or 3 MB

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda