Como reiniciar o serviço docker sem afetar os contêineres em execução

August 11, 2023    container docker linux software livre

Reinicie o serviço docker sem afetar os contêineres em execução usando a funcionalidade de Live Restore. Muito útil para quando você precisa alterar ou mesmo atualizar o binário do Docker no seu sistema operacional.

Primeiro, vamos listar os containers em execução:

docker ps

CONTAINER ID   IMAGE                          COMMAND                  CREATED       STATUS                 PORTS                    NAMES
4c644b887440   archivebox/archivebox:master   "dumb-init -- /app/b…"   2 weeks ago   Up 2 weeks (healthy)   0.0.0.0:8000->8000/tcp   archivebox_archivebox_1

Reinicie o serviço do docker.

sudo systemctl restart docker

Observe que o contêiner em execução também foi reiniciado.

docker ps

CONTAINER ID   IMAGE                          COMMAND                  CREATED              STATUS                        PORTS                    NAMES
46e33e628976   archivebox/archivebox:master   "dumb-init -- /app/b…"   About a minute ago   Up About a minute (healthy)   0.0.0.0:8000->8000/tcp   archivebox_archivebox_1

Vamos ativar a funcionalidade de restauração ao vivo.

vim /etc/docker/daemon.json

{
  "live-restore": true
}

Vamos reler as configurações do docker:

sudo systemctl reload docker

Agora vamos reiniciar o docker novamente:

sudo systemctl restart docker

Observe que o contêiner ainda está em execução. O status dele continua e não foi reiniciado.

docker ps

CONTAINER ID   IMAGE                          COMMAND                  CREATED         STATUS                   PORTS                    NAMES
46e33e628976   archivebox/archivebox:master   "dumb-init -- /app/b…"   4 minutes ago   Up 4 minutes (healthy)   0.0.0.0:8000->8000/tcp   archivebox_archivebox_1

Ref.

comments powered by Disqus