Como sair do Docker exec após a saída do contêiner?

Como faço para sair graciosamente de um contêiner docker ao qual me conectei usando docker exec -ti, depois que o docker eu me conectei às saídas?

Se eu sair do contêiner original, o shell que executou o docker exec o comando está pendurado, e a única maneira que posso encontrar para sair de volta para sua concha é matar o docker exec comando de outro terminal.

Existe uma maneira mais graciosa?

Isso acontece se eu iniciar o contêiner com --rm ou.

Estou executando o docker 19.03.12 no bash 5.0.16 no gnome-terminal 3.26.3 no Ubuntu 20.04.

Para separar o tty sem sair do shell, use a sequência de escape CTRL+P seguido por CTRL+Q. Mais detalhes aqui.

Informações adicionais desta fonte:

docker run-t-i → pode ser destacado com Ctrl+P &lificador; Ctrl+Q sequece e recolocado com Docker attach

docker run-I → não pode ser destacado com Ctrl+P &lificador; Ctrl+Q sequência; irá interromper stdin

docker run → Não pode ser destacado com Ctrl+P &lificador; Ctrl+Q; pode SIGKILL cliente; pode recolocar com Docker anexar

Espero que isso ajude.

Você primeiro executa o contêiner com desanexado modo, não Primeiro Plano:

docker run --name mynginx -p 80:80 -d nginx

Então você pode anexar a ele com Docker exec:

docker exec -it mynginx /bin/sh

Tenha em mente que, se você deseja anexar a um contêiner para inspeção, você deve especificar --interactive , -i e --tty , -t opções, porque seu contêiner já está executando seu processo principal em segundo plano do anterior docker run -d comando.
Dessa forma, quando você terminar de inspecionar seu contêiner, poderá sair graciosamente dele com ctrl+d ou logout comando, como você sair de um shell comum

@ Khushal me deu a resposta ... mais ou menos. No meu caso, Ctrl+P &lificador; Ctrl+Q ainda não funcionou mesmo ao ligar run com -t, mas simples velho Ctrl+C sabio. Para fornecer algum contexto, estou brincando com um contêiner Rancher docker, então YMMV.

Para resumir, crie o contêiner com:docker run -t -d --name=thingy ...

Anexe como de costume com:docker attach thingy

Separar com bom antiquado Ctrl+C.

A propósito, -t, segundar documento, aloca um pseudo-TTY.

Esta pergunta foi feita anteriormente, consulte: How do you attach and detach from Docker's process? - Stack Overflow

Em meu próprio ambiente Debian executando 19.03.11, a instância exec sai imediatamente e retorna meu prompt de shell assim que o contêiner sai. Você pode fornecer mais detalhes para reproduzir seu problema?

@ BMitch editou a pergunta para adicionar as bandeiras ` - ti’; desculpe por omitir isso!

Obrigado @ user929169 – eu não sabia os Termos certos para usar. Não consigo fechar isso como duplicado, pois a resposta está em outro site. Poste isso como a resposta e você receberá os pontos.