Skip to main content

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.

Captura de tela de 2024-07-02 16-08-12.png

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.

Captura de tela de 2024-07-02 16-14-35.png

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.

Captura de tela de 2024-07-02 16-30-53.png

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.

Referências

7 Práticas recomendadas para usar o Docker em produção