Executar comandos em um contêiner interrompido

docker exec só funciona com contêineres em execução no momento.

Se você quiser pegar a imagem resultante e executar outro comando, precisará confirmá-la e iniciar outro contêiner:

docker run --name mycont4 ubuntu echo one </pre> 

one


$ docker commit mycont4 myimage5


015b3a3d3844b0c3638ab0e07eabd6b2ccdd1768667bc8635051488c6dcec087


$ docker run --name mycont5 myimage5 echo


two


Como o exemplo de eco pode estar distorcendo um pouco, o docker exec ainda pode funcionar para você.
Por exemplo:


$ docker run --name mycont4 ubuntu sleep 10 # deixe esta saída

$ docker start mycont4 $ isto inicia o sleep 10 back up no fundo


mycont4


$ docker exec mycont4 ps faux


USUÁRIO PID% CPU% MEM VSZ RSS TTY STAT HORA DE INÍCIO COMANDO


root 8 0,0 0,1 15568 2112?
R 08:11 0:00 ps faux


root 1 0,7 0,0 4348 648?
Ss 08:11 0:00 sleep 10


Como o sleep não é encerrado imediatamente, o contêiner ainda está em execução quando você executa o docker exec.



Espero que isso seja útil.