我正在摆弄在 docker 容器中安装一些小程序。
目前,我有这个 dockerfile:
FROM ubuntu:20.04
RUN apt-get update
RUN apt-get install vim -y
RUN apt-get install wget -y
RUN apt-get install gzip -y
WORKDIR "/root"
RUN wget https://github.com/spotbugs/spotbugs/releases/download/4.4.1/spotbugs-4.4.1.tgz
RUN gunzip -c spotbugs-4.4.1.tgz | tar xvf -
CMD ["ls"]
CMD ["/bin/bash"]
这会创建一个包含我需要运行的一些特定文件的图像。
然后我构建我的容器:
sudo docker build . --tag img
然后我运行它:
sudo docker run -t -d img
运行后,我在其中打开一个 shell 会话:
sudo docker exec -it idhere /bin/bash
一旦我参加了这个会议,我就可以做whoami
,ls
和cd
。但是现在我需要导航到这台计算机上的一个特定文件并运行一个 bash 文件,我需要使用 sudo 运行它,因为我的权限被拒绝:
root@0e92aab9b906:~/spotbugs-4.4.1/bin# ./spotbugs
bash: ./spotbugs: Permission denied
root@0e92aab9b906:~/spotbugs-4.4.1/bin# sudo ./spotbugs
bash: sudo: command not found
但它不知道 sudo 是什么?为什么会这样,它不能访问常规的 bash 程序吗?