Esse artigo é simples, mas, se você é novo no Docker, talvez deva procurar. Neste servidor, eu rodo o Nginx como um container Docker usando a versão oficial nginx:alpine.
Eu estava rodando uma versão bastante desatualizada:
$ docker images | grep nginx nginx none 5a35015d93e9 10 months ago 15.5MB nginx latest 46102226f2fd 10 months ago 109MB nginx 1.11-alpine 935bd7bf8ea6 18 months ago 54.8MB
Para ter certeza de ter a versão mais recente, eu executei pull:
$ docker pull nginx:alpine alpine: Pulling from library/nginx 550fe1bea624: Pull complete d421ba34525b: Pull complete fdcbcb327323: Pull complete bfbcec2fc4d5: Pull complete Digest: sha256:c8ff0187cc75e1f5002c7ca9841cb191d33c4080f38140b9d6f07902ababbe66 Status: Downloaded newer image for nginx:alpine
Agora, meu repositório local contém uma versão atualizada do Nginx:
$ docker images | grep nginx nginx alpine bb00c21b4edf 5 weeks ago 16.8MB
Para usá-la, você deve iniciar um novo container com base nessa imagem específica. O container em execução ainda estará usando a imagem original (antiga).
$ docker ps CONTAINER ID IMAGE COMMAND CREATED 4d9de6c0fba1 5a35015d93e9 "nginx -g 'daemon ..." 9 months ago
No meu caso, recriei meu container HTTP/2 nginx desta forma;
$ docker stop nginx-container $ docker rm nginx-container $ docker run --name nginx-container \ --net="host" \ -v /etc/nginx/:/etc/nginx/ \ -v /etc/ssl/certs/:/etc/ssl/certs/ \ -v /etc/letsencrypt/:/etc/letsencrypt/ \ -v /var/log/nginx/:/var/log/nginx/ \ --restart=always \ -d nginx:alpine
E a atualização do Nginx/container foi concluída.
***
Mattias Geniar faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://ma.ttias.be/update-docker-container-latest-version/.