Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exercício 03 da Aula 3 - Comando "docker exec" exibe erro "Error response from daemon: Container e31dfdba17a6f91ead8e64c31699f35c8edf86accbaca63860319275b385dc6d is not running"

Ao fazer o Exercício 03 da Aula3, é dito no comando para executar o comando

docker exec -it [id do contêiner] [comando]

porém quando faço isso o docker dá a seguinte mensagem

Error response from daemon: Container e31dfdba17a6f91ead8e64c31699f35c8edf86accbaca63860319275b385dc6d is not running

Segue abaixo a sequência de comandos que executei e que está na resposta do exercício. Esqueci (ou esqueceram) de alguma coisa?

PS C:\Users\davi> docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
PS C:\Users\davi> docker run ubuntu bash
PS C:\Users\davi> docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
e22bc4fcc612        ubuntu              "bash"              6 seconds ago       Exited (0) 5 seconds ago                       adoring_shockley
PS C:\Users\davi> docker exec -ti e22bc4fcc612 bash
Error response from daemon: Container e22bc4fcc612351df43e28e38cbc0973700a441157c55d6b7e9ea948a03c636e is not running
PS C:\Users\davi>
2 respostas
solução!

Fala aí Davi,

O que está acontecendo é que seu container do ubuntu parou/saiu antes de você executar o segundo comando.

Repare qua na saída do seu comando docker ps -a o status dele é Exited(0).

Ao executar o docker exec -ti e22bc4fcc612 bash o container não está mais ativo, e por isso gera esse erro.

Isso acontece porque ao rodar seu container com a seguinte instrução: docker run ubuntu bash. O docker irá subir um container e irá rodar o bash ( que é um interpretador de comandos). Como não foi passado nenhum comando para o bash. Ele encerra o processo (e com isso fica com o status Exited(0) ).

Tente rodar o container com o seguinte comando docker run -it ubuntu bash. Dessa forma será anexado um terminal virtual com o processo de bash (fazendo com que seu container só encerre quando esse terminal for finalizado).

E em outro terminal/aba execute o docker exec -ti [id do container] bash

Espero ter ajudado e bons estudos.

Obrigado pela sua presteza na resposta Fernando.

Como a sequência de comandos que constava na resposta do exercício estava exatamente dessa forma que eu coloquei ao final da minha pergunta, fiquei na dúvida. Mas você esclareceu a maneira correta de fazer.

Na minha opinião a resposta do exercício deve então ser corrigida para ficar de acordo com a sua resposta acima.

E mais uma vez obrigado.