我在无根 docker 环境中工作,我想用 sudo 执行包含一些命令的 shell 脚本,但是我的终端无法识别 sudo 命令(可能是因为它是无根 docker)。我收到以下错误:
sudo: command not found
如何在不更改 shell 脚本的情况下执行它?(我不想手动删除 sudo 命令,在无根 docker 中我只需要忽略 sudo 并执行其余行)。
我尝试为 sudo 创建别名,如下所示.bashrc
:
alias sudo=''
,
但这不是一个正确的解决方案,因为对于某些行我们有:
sudo -u username ...
。
答案1
这可能听起来很疯狂,但我只需安装 sudo 就解决了这个问题!
apt install sudo
此后,rootless docker 与普通 docker 类似。
答案2
在 Docker 上运行 sudo 语句是个坏主意。不过,你始终可以尝试在 docker 外部执行脚本,docker exec -ti --user root container /path/to/script
或者使用脚本创建 Dockerfile。