如何修改通过rocker启动的Docker容器中的Shell名称?
解决容器内Shell提示符与主机混淆的问题
针对你用rocker启动容器后无法区分主机和容器终端的问题,有以下几种可行方案:
临时修改(单次生效)
进入容器后直接执行命令修改Shell提示符(以bash环境为例):export PS1='[\u@\h-universe]\$ '执行后提示符会变为类似
[user@hostname-universe]$的形式,明确标识当前处于名为universe的容器内,退出容器后该设置失效。永久修改(容器专属配置)
由于rocker的--home参数会挂载主机的home目录,直接修改~/.bashrc会影响主机配置,建议在容器内创建独立的Shell配置文件,比如~/.bashrc-container,写入:export PS1='[\u@\h-universe]\$ ' # 可按需添加其他容器专属Shell配置然后启动容器时通过
--command指定加载该配置:rocker --x11 --home --user-preserve-home --user --privileged --name universe --volume /dev/input:/dev/input:ro --volume /run/udev:/run/udev:ro --volume /dev:/dev --network host -- bash --rcfile ~/.bashrc-container启动时通过环境变量指定
在原rocker命令中添加--env参数直接设置PS1环境变量,无需修改容器内文件:rocker --x11 --home --user-preserve-home --user --privileged --name universe --volume /dev/input:/dev/input:ro --volume /run/udev:/run/udev:ro --volume /dev:/dev --network host --env PS1='[\u@\h-universe]\$ ' --容器启动后,Shell提示符会直接生效标识。
内容的提问来源于stack exchange,提问作者Berkay
相关产品推荐
相关产品推荐

