Jos*_* B. 4 command-line docker mounted-volumes docker-volume
对于我犯的这个简单错误,我无法在网上找到任何帮助,所以我正在寻求一些帮助。我正在使用服务器在容器中运行 docker 映像,但我输入错误,给自己带来了烦恼。我运行了命令
docker run --rm -v typo:location docker_name
Run Code Online (Sandbox Code Playgroud)
由于我在安装目录时出现了拼写错误,因此它在主机上创建了一个目录,当容器结束时,该目录仍然存在。我尝试删除它,但我收到错误
rm -rf typo/
rm: cannot remove 'typo': Permission denied
Run Code Online (Sandbox Code Playgroud)
我现在知道我应该使用--mount而不是-v为了安全,但损害已经造成;如何在无法访问创建该目录的容器的情况下删除该目录?
我提前道歉,我对 docker 的了解相当有限。我学习它主要是为了使用特定的图像,然后我通过谷歌搜索来完成剩下的工作。
Docker 安全的第一条规则是,如果您可以运行任何docker命令,您就可以获得整个主机的不受限制的 root 访问权限。
因此,您可以通过运行容器来解决此问题,以 root 身份运行并绑定挂载父目录,这可以删除有问题的目录:
docker run \
--rm \
-v "$PWD:/pwd" \
busybox \
rm -rf /pwd/typo
Run Code Online (Sandbox Code Playgroud)
我没有
sudo权限
你可以解决这个问题
docker run --rm -v /:/host busybox vi /host/etc/sudoers
Run Code Online (Sandbox Code Playgroud)
(这在很多地方都有影响。不要不加区别地将用户添加到docker组中,特别是在多用户系统上,因为他们可以轻松获得 root 访问权限。将主机的 Docker 套接字发布到容器中时要小心,因为容器然后可以 root 主机;也许重新设计您的应用程序以避免需要它。绝对不要通过网络公开 Docker 套接字。)
| 归档时间: |
|
| 查看次数: |
2041 次 |
| 最近记录: |