Posso efetuar login em um contêiner Docker baseado no Alpine por meio de um shell sem login ou sem login, ou seja , ash
vs.ash -l
$ docker run -it --rm alpine /bin/ash
/ #
Agora, quando uso o shell de login, vejo uma string estranha no lado esquerdo do prompt:
$ docker run -it --rm alpine /bin/ash -l
46d4c6007f75:/#
Gostaria de saber de onde isso veio. Presumi que fosse o nome de usuário, mas whoami
diz que é root
.
Quero modificar a aparência do shell de login do meu contêiner Alpine para o shell de login, mas não tenho ideia de onde ele está definido.
Esse é o nome do host do contêiner, que por padrão é apenas uma versão curta do ID do contêiner, mas pode ser definido como qualquer coisa usando a
--hostname
opçãodocker run
:O prompt é definido pela
PS1
variável shell, assim como com Bash e outros shells do tipo Bourne. Por padrão,PS1
é definido por/etc/profile
e contém:Mas você pode redefinir isso como achar melhor:
A diferença é que ambas as abordagens definem uma
PS1
variável diferente, obtendo arquivos diferentes.O não login usa:
\w \$
o login que se usa:
\h:\w\$
\h
significa o nome do host,\w
o diretório atual.