Dev (Back & Front)ARTIGO

Obter Shell no container Docker em execução

Neste artigo, o autor ensina a obter Shell no container Docker em execução.

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 dockerDocker46 conteúdosE o Docker Swarm? Contextos e motivadores diáriosDevSecOps · ago 2024Automatizando o ambiente de desenvolvimento e testes com DockerDevSecOps · mai 2019MySQL + Adminer + Docker Compose: montando rapidamente um ambiente para usoData · abr 2019Ver tudo em DevSecOps 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 MongoDBMongoDB19 conteúdosMongoDB e LGPD: Quais os recursos disponíveis?Data · jul 2019Laravel & MongoDB: saiba mais sobre embedded documentsData · abr 2021LEFT JOIN no MongoDB, não é magia… É Aggregation Framework!!!Data · set 2019Ver tudo em Data 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/

Trabalha com programação de linguagens e servidores há mais de 10 anos. Atualmente, trabalha na Nucleus como desenvolvedor e engenheiro de sistemas. Seus interesses incluem Linux, Apache, MySQL e PHP.

Ver perfil