Este tutorial tem como objetivo mostrar como trabalhar com o comando Docker Exec para executar comandos em contêineres em execução.
Uso básico
Trabalhar com o Docker Exec é muito simples. Começamos chamando o comando do Docker Exec, seguido pelo nome ou ID do contêiner e pelo comando para executar.
Por exemplo, para executar o comando Echo no contêiner Debian, usamos o comando como:
$ Docker Exec Debian Echo Hello
O comando gera uma concha do contêiner Debian e executa o comando Echo. Um exemplo de saída aparece abaixo:
Para obter o nome ou um ID dos contêineres em execução, use o comando:
$ docker ps
Opções do Docker Exec
O comando Docker EXEC suporta várias opções para modificar a funcionalidade dos comandos. Ele suporta as seguintes funções.
Docker Exec sh
Na maioria dos casos, precisamos de uma instância do shell no contêiner para executar comandos brutos. Para fazer isso, usamos o comando do Docker Exec.
$ Docker Exec Debian -i -t /Bin /Bash
O comando acima lança uma concha interativa. É bom garantir que exista executável Bash antes do comando em execução.
Se Bash ou qualquer shell que você deseja usar não estiver disponível, use sh no comando abaixo:
$ Docker Exec -it /bin /sh
Como você pode ver, você tem uma sessão interativa de shell, onde pode executar comandos.
Executivo como root
Para executar o comando como root, use a opção -u. A opção requer um nome de usuário ou uid do usuário. Por exemplo:
$ Docker Exec -u 0 Debian Whoami
$ root
No comando acima, usamos o UID do usuário root para executar o comando whoami como root.
Para usar o nome de usuário em vez do usuário UID, use o comando:
$ Docker Exec -U Root Debian Whoami
$ root
O comando acima pode ajudar quando você deseja solucionar ou executar tarefas que exigem privilégios elevados.
Conclusão
Isso é tudo para o comando do Docker Exec.
Discutimos usando o Docker Exec para executar comandos em seus contêineres em execução e gerar uma sessão de shell. Finalmente, abordamos como executar comandos como root usando nome de usuário e uid.