Atualizar um contêiner no lugar é um anti-padrão completo. É complicado, pois você precisa atualizar cada um deles e possivelmente comprometer cada um deles.
Em vez disso, atualize a imagem usada para gerar seus contêineres. Isso normalmente é feito com uma seção no seu Dockerfile
para garantir que a imagem esteja atualizada, então o processo de correção é basicamente reconstruir a imagem. Como exemplo:
FROM centos:7.2.1511
MAINTAINER Jane Doe <[email protected]>
RUN yum update -y && \
yum install -y \
bar \
foo && \
yum clean all
# The rest of your Dockerfile
Continuando a nova imagem, porém, é onde eu acho falta ECS. Você precisa criar uma estratégia para garantir que não haja tempo de inatividade.
Também é uma prática recomendada ter um serviço varrendo as imagens do seu registro em busca de vulnerabilidades.
Corrigir o SO do host (que pode exigir uma reinicialização) sem tempo de inatividade, é outra área em que achei o ECS sem recursos de orquestração, como em, nada pronto para ser incluído no produto que não seja o balanceamento ELB entre nós.
Outras plataformas de contêiner (como o OpenShift) têm a capacidade de evacuar contêineres ( pods, já que este é o kubernetes) dos nós e agendá-los em outro lugar. O balanceador de carga está ciente dessas alterações, garantindo tempo de inatividade zero .
Além disso, o sistema operacional normalmente usado com o OpenShift possui um mecanismo de correção aprimorado baseado em RPM OSTree que reduz bastante a complexidade do patch do sistema operacional host.