Boas práticas
Imagem oficial
User imagens oficiais docker como imagens base para a criação dos serviços utilizados na sua aplicação.
Ao invés de pegar uma imagem base de um sistema operacional inteiro (Exemplo: ubuntu
, alpine
) e instalar os pacotes necessários para a execução do serviço desejado, procurar no repositório do Docker Hub imagens oficiais na versão desejada deste serviço.
Exemplo: imagem docker oficial do PHP.
Versões específicas
Ao se escolher a imagem docker a ser utilizada para determinado serviço, definir uma versão específica para se utilizar desta imagem.
Por padrão, quando você não especifica a tag
da imagem a ser utilizada em uma imagem docker, você utilizará a versão latest
desta imagem. Conforme novas versões deste serviço são desenvolvidas, a imagem docker da tag
denominada latest
será substituída por estas novas versões.
Imagem docker do PHP, tag latest.
Essa situação pode se transformar em um problema, porque você poderá perder o controle sobre qual a versão do serviço será utilizado. Por exemplo, quando o desenvolvimento e testes da aplicação for realizado, a tag latest
pode conter o serviço PHP na versão 7.3
. Num momento futuro, com o desenvolvimento de novas versões, a tag lastest
poderá conter o serviço PHP na versão 8.0
, que pode ter problema de compatibilidade com a versão anterior e causar um funcionamento imprevisível.
Tamanho pequeno
Dê preferência para imagens docker de tamanho pequeno. Além da economia de recursos, prefira imagens que tenham somente os serviços essenciais para o funcionamento da aplicação a ser desenvolvida.
Se for o caso, defina as imagens docker com os pacotes necessários para cada um dos ambientes de execução da aplicação. Por exemplo, a imagem do ambiente de desenvolvimento poderá ter pacotes instalados que não são necessários no ambiente de produção.
Além dos pacotes instalados na imagem, a distribuição que foi utilizada como imagem base também influenciará no tamanho total da imagem docker.
Imagens docker PHP 8.3 - diferença de tamanho entre sistemas operacionais
Quanto mais pacotes, além dos recursos necessários para seu funcionamento, amplia-se potenciais problemas de segurança e maior frequência de necessidade de atualização.
.dockerignore
Quando se constrói uma imagem docker, podemos especificar quais os arquivos do repositório não serão incluídos dentro da imagem. O arquivo .dockerignore
é utilizado na mesma lógica do funcionamento do arquivo .gitignore para um repositório git
. Adicione neste arquivo o nome ou o padrão de arquivos para serem ignorados no momento da criação da imagem docker.