我可以通过非登录或非登录shell(即ash
vs )登录基于 alpine 的 docker 容器ash -l
。
$ docker run -it --rm alpine /bin/ash
/ #
现在,当我使用登录 shell 时,我在提示符左侧看到一个奇怪的字符串:
$ docker run -it --rm alpine /bin/ash -l
46d4c6007f75:/#
我不知道这是从哪里来的,我以为这是用户名,但却whoami
说是root
。
我想修改基于 Alpine 的容器的登录 shell 的外观,但我不知道它在哪里定义。
这就是容器主机名,默认情况下它只是容器 ID 的简短版本,但可以使用以下
--hostname
选项将其设置为任何内容docker run
:提示符由
PS1
shell 变量定义,就像 Bash 和其他 Bourne 类 shell 一样。默认情况下,PS1
由以下变量设置/etc/profile
并包含:但您可以根据需要重置它:
不同之处在于,两种方法都
PS1
通过获取不同的文件来设置不同的变量。免登录使用:
\w \$
登录使用:
\h:\w\$
\h
表示主机名,\w
当前目录。