我有一个 Azure 容器实例,默认情况下有一个非 root 用户。为了调试和实验,我想像使用普通的 docker 容器一样执行到容器中: docker exec -u root ...
,这样我就在容器中拥有 sudo 权限。如 Interacting with a container in Azure Container Instances 中详述,您可以通过az container exec ...
运行exec命令,但正如克里斯蒂安的回答中提到的,https://stackoverflow.com/a/50334426/17129046 ,似乎没有办法添加额外的参数,不仅仅是为正在运行的程序,而且似乎也不支持 docker exec
所具有的任何附加选项,包括 -u
运行时更改登录容器的用户的选项 docker exec -u root ... '/bin/bash'
.
我尝试过使用su
在容器中,但它提示输入密码,而且我不知道该密码是什么,因为据我所知,创建此 ACI 使用的镜像的 dockerfile 没有设置密码(该镜像是通过创建的)本托姆尔)。默认用户名为 Bentoml。运行结果id
:
uid=1034(bentoml) gid=1034(bentoml) groups=1034(bentoml)
有解决办法吗?也许有一种以 root 身份 ssh 进入容器的方法?
最佳答案
我尝试重现该问题并得到以下输出
我已使用以下命令从 docker hub 中提取了 docker 镜像
docker pull <image_name>
从 docker 中提取镜像时,如果需要,我们需要提供凭据
我已使用以下命令运行图像
docker run -it <image_id> /bin/bash
此处容器正在运行,但我无法使用 root 用户命令
要以 root 身份访问容器,请使用以下命令
docker run -u 0 -it image_id /bin/bash
在这里我现在可以安装所有根包
您可以使用此 docker 文件设置无密码,这样它就不会询问任何密码
RUN apt-get update \
&& apt-get install -y sudo
RUN adduser --disabled-password --gecos '' docker
RUN adduser docker sudo
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER docker
关于azure - 如何以 root 用户身份访问 Azure 容器实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74032606/