You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行docker exec后Shell提示符显示bash-4.2的问题修复咨询

问题描述

执行以下命令创建MariaDB容器:

docker run -itd --restart always --network host --name test_db -h test_db -v share:/home/share -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged mariadb_10.8 init

初始执行docker exec -it test_db bash时,Shell命令提示符显示root@test_db,但一段时间后变为bash-4.2,同时容器内无ll命令和/root目录,请问该如何修复?

修复步骤

1. 重建/root目录并恢复bash配置

/root目录丢失是问题根源,先手动重建并复制基础配置文件:

docker exec -it test_db mkdir /root
docker exec -it test_db cp /etc/skel/.bashrc /root/
docker exec -it test_db cp /etc/skel/.bash_profile /root/

2. 恢复命令提示符

退出当前bash会话后重新进入,提示符会自动读取/root下的配置文件恢复正常:

exit
docker exec -it test_db bash

3. 恢复ll命令

ll是ls -l的别名,默认在.bashrc中定义,重新进入bash后即可使用。如果临时需要生效,可手动执行:

alias ll='ls -l --color=auto'

4. 避免问题再次发生

  • 不要在容器内随意删除/root这类系统关键目录
  • 检查容器内init进程是否关联了会删除目录的异常脚本,若不需要init管理容器进程,可替换启动命令为直接启动MariaDB:
    docker run -itd --restart always --network host --name test_db -h test_db -v share:/home/share -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged mariadb_10.8 mysqld
    

内容的提问来源于stack exchange,提问作者eos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:05:21