Desenvolvimento

25 out, 2017

Obter Shell no container Docker em execução

Publicidade

Isso me salvou mais vezes do que eu posso contar, podendo depurar um container em execução do jeito que você faria em uma VM “normal”.

Primeiro, veja quais containers estão em execução:

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  [...] NAMES
925cc10d55df        66cc85c3f275        "gitlab-runner-ser..."   [...] runner-f500bed1-project-3888560-concurrent-0-mysql-0-wait-for-service
0ab431ea0bcf        3e3878acd190        "docker-entrypoint..."   [...] runner-f500bed1-project-3888560-concurrent-0-mysql-0
4d9de6c0fba1        nginx:alpine        "nginx -g 'daemon ..."   [...] nginx-container

Para obter um Shell (Bash) em um container de escolha, execute isso:

$ docker exec -i -t nginx-container /bin/bash

O nginx-container determina qual container você deseja inserir. É o nome na última coluna da saída docker ps.

Alternativamente, use a ID do container:

$ docker exec -i -t 4d9de6c0fba1 /bin/bash

Não use o docker attach, pois isso lhe dará resultados diferentes se o comando inicial que começou em um container Docker for algo como o MongoDB ou Redis, a instância será morta.

***

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/get-shell-running-docker-container/