Como escolher uma boa imagem no Docker Hub!?
Quais critérios você utiliza para selecionar uma imagem no Docker Hub? Por exemplo, se digita postgres a busca retorna mais de 10000 resultados. Como escolher uma imagem que atenda suas necessidades, e ao mesmo tempo siga boas práticas de segurança?
Vou compartilhar 3 critérios que você pode utilizar para escolher boas imagens. Na própria plataforma do Docker Hub existem 3 filtros que você pode fazer.
Imagens Docker Oficiais (Docker Official Image)
As imagens oficiais são um conjunto de repositórios open source hospedados no Docker Hub selecionadas pela própria empresa Docker. Essas imagens apresentam documentação clara, promovem boas práticas e são adequadas para grande parte dos casos comuns de utilização. Por isso, em geral são uma ótima escolha.
Exemplos de image que atendem esse critério:
ubuntu: https://hub.docker.com/_/ubuntu
centOS: https://hub.docker.com/_/centos
postgres: https://hub.docker.com/_/postgres
Editores Verificados (Verified Publishers)
Esse conjunto de imagens são de editores verificados pela Docker, e são mantidas por alguma entidade comercial. Um benefício de utilizar esse tipo de imagem é que elas não estão sujeitas à limitação de pulls que o Docker Hub impõe.
Além disso, essas imagens podem ter diferenças importantes em relação às imagens oficiais, como é o caso da imagem bitnami/postgresql que roda com um usuário não-root, em vez do usuário root que é usado na imagem oficial do Postgres.
Exemplos de imagens:
grafana: https://hub.docker.com/r/grafana/grafana
redis: https://hub.docker.com/r/bitnami/redis
mongodb: https://hub.docker.com/r/bitnami/mongodb
Softwares Open Source patrocinados pela Docker (Sponsored OSS)
Os repositórios dessa categoria contém imagens publicadas e mantidas por projetos open source patrocinados pela Docker por meio do programa de apoio a programas Open Source (https://www.docker.com/community/open-source/application/).
Essas imagens também não estão sujeitas à limitação de pulls, e como o nome sugere, são de projetos open source. Para fazer parte desse programa os projetos se comprometem a manterem atualizadas as imagens.
Exemplos de imagens:
fluent-bit: https://hub.docker.com/r/fluent/fluent-bit
curl: https://hub.docker.com/r/curlimages/curl
jenkins: https://hub.docker.com/r/jenkins/jenkins
Já conhecia esses critérios? Sabia que existem outros que são igualmente importantes para selecionar uma boa imagem!? Conheça esses outros critérios no vídeo a seguir:
E comenta aí quais outros critérios você utiliza para selecionar suas imagens! Abraços.