Skip to main content


NSENTER


O nsenter é uma ferramenta de linha de comando que permite acessar namespaces de processos no Linux. Namespaces são um recurso do kernel Linux que permite a virtualização de recursos do sistema, como processos, redes, usuários e sistemas de arquivos. Essa virtualização permite a criação de ambientes isolados, como contêineres.


O nsenter é usado em situações em que o daemon do Docker não está respondendo e o comando docker exec não esteja funcionando. O nsenter vai conseguir logar no container.


O comando nsenter é usado para ingressar (enter) namespaces de processos existentes. Ele pode ser útil em várias situações, incluindo:

  1. Depuração de Contêineres: Permite acessar o namespace de processos de um contêiner em execução para depurar problemas ou inspecionar o ambiente interno do contêiner.

  2. Interagir com o Namespace de Rede: Permite configurar manualmente a rede dentro de um contêiner ou acessar a configuração de rede de um contêiner em execução.

  3. Acesso a Outros Namespaces: Permite ingressar em namespaces de outros processos, como namespaces de usuário ou namespaces de sistemas de arquivos, para realizar tarefas específicas.


É importante observar que o nsenter pode ser uma ferramenta poderosa mas também pode ser perigosa se usada incorretamente, pois permite acesso direto aos namespaces do sistema. Por esse motivo, deve ser usada com cuidado e conhecimento adequado do ambiente e dos namespaces em questão.


Para entrar num container, podemos usar:

Terminal
# Obtenha o PID do container com ID = 1b650f8c3a08:
PID=$(docker inspect --format '{{ .State.Pid }}' 1b650f8c3a08)

# Logue no container:
sudo nsenter --target $PID --uts --ipc --net --pid