在 Docker 容器中找不到 sudo
命令是一个常见情况,这是因为大多数 Docker 镜像为了精简体积,默认不安装 sudo
。以下是几种解决方法:
推荐做法:Docker 容器通常设计为以 root 用户运行单个进程,不需要 sudo。
# 直接以 root 用户运行命令(默认行为)
docker run -it ubuntu apt-get update
# 在基于 Debian/Ubuntu 的容器中
apt-get update && apt-get install -y sudo
# 在基于 CentOS/RHEL 的容器中
yum install -y sudo
# 在 Dockerfile 中
RUN apt-get update && apt-get install -y sudo
RUN useradd -m dockeruser && \
echo "dockeruser:dockerpass" | chpasswd && \
adduser dockeruser sudo
USER dockeruser
docker exec -u 0 -it 容器ID 命令
# -u 0 表示以 root 用户身份运行
USER
指令在 Dockerfile 中指定非 root 用户--privileged
标志或 --cap-add
参数希望这些方法能帮助您解决 Docker 容器中缺少 sudo 的问题。