
Digamos que eu tenha uma máquina host Ubuntu rodando Docker.
Este host contém muitos contêineres em execução que usam diversas imagens base ( FROM
), como ubuntu, alpine, java:8...
Este host também contém algumas imagens construídas à mão.
Hoje consigo parar e remover todos os meus contêineres e depois criá-los novamente. Nenhuma das imagens armazena dados (não comprometo contêineres). Portanto, perder meus dados não é um problema. Reativar meus serviços também não deve ser um problema, desde que as imagens permaneçam as mesmas.
Suponha que foi encontrada uma vulnerabilidade afetando o kernel do Linux.
Atualizei meu sistema operacional host para que o host não fique mais vulnerável. Os contêineres Docker usam o kernel do host para serem executados, mas isso é suficiente? Quais são as considerações e ações que devo tomar para garantir que meus contêineres não sejam afetados pela vulnerabilidade?
Responder1
Já que os contêineres docker usam o kernel host. Depois que o kernel do host for atualizado, você não terá problemas com os contêineres.
Os problemas nas bibliotecas são outra história. Openssl, por exemplo, é uma biblioteca que pode ser diferente nos contêineres e no host e deve ser atualizada.
É uma boa prática incluir um apt-get update && apt-get -q -y upgrade
no topo do seu Dockerfile. Portanto, você deve construir suas imagens regularmente.
Se você usa imagens oficiais, é uma boa prática fazer pull regularmente para atualizar seus contêineres. Se você usar docker-compose:
docker-compose pull && docker-compose up -d
Isso irá atualizá-los. Para o docker simples, você precisa puxar. Exclua o contêiner e crie um mais novo apontando para os mesmos volumes:
docker pull image
docker stop containerid && docker rm containerid
docker run image ....
Cumprimentos