Definir o diretório de trabalho para o processo exec
Nesta etapa final, você aprenderá como definir o diretório de trabalho para o comando que está sendo executado com docker exec. Por padrão, docker exec executa comandos no diretório de trabalho configurado do container (frequentemente /). Você pode substituir isso usando a opção -w.
Continuaremos a usar o container ubuntu em execução. Se ele não estiver em execução, inicie-o com:
docker run -d ubuntu:latest sleep infinity
Obtenha o ID do Container do seu container ubuntu em execução usando docker ps:
docker ps
Agora, vamos executar um comando que imprime o diretório de trabalho atual dentro do container. Usaremos o comando pwd. Substitua <container_id> pelo ID do seu container.
docker exec < container_id > pwd
Você deve ver / como a saída, que é o diretório de trabalho padrão na imagem ubuntu.
Agora, vamos executar o comando pwd novamente, mas desta vez definiremos o diretório de trabalho para /tmp usando a opção -w.
docker exec -w /tmp < container_id > pwd
Vamos analisar a nova opção:
-w /tmp: Esta opção define o diretório de trabalho para o comando pwd como /tmp dentro do container.
Você deve agora ver /tmp como a saída. Isso demonstra que você pode especificar um diretório de trabalho diferente para o comando executado com docker exec. Isso é útil quando você precisa executar comandos que operam em arquivos em um local específico dentro do container.
Isso conclui o laboratório sobre a execução de comandos em containers Docker. Você aprendeu como iniciar containers para execução, executar comandos em containers em execução, abrir sessões de shell interativas, definir variáveis de ambiente e definir o diretório de trabalho para processos exec.