【问题标题】:How to access docker host filesystem from privileged container如何从特权容器访问 docker 主机文件系统
【发布时间】:2021-02-23 09:20:18
【问题描述】:

不使用卷 -v

我可以将--privileged 添加到docker run,但我无法挂载任意卷,因为我依赖另一个工具来创建 docker 容器,所以我的问题是如何使用@987654325 获得对 docker 主机文件系统的完全访问权限@,够了吗?

特别需要从 docker 容器内访问主机/run/。我也可以包括--cap-add,这样可能会有所帮助。我唯一不能做的就是挂载卷。

【问题讨论】:

  • 您应该使用卷,请参阅文档docs.docker.com/userguide/dockervolumes 例如docker run -v /run:/run
  • 正如在问题中试图表达的那样,我无法控制 docker run 命令并且无法添加 -v 但我可以执行其他操作,例如设置特权 true 甚至启用任何 Linux能力。
  • 你必须挂载 /run 目录,还是足以复制到/从它?
  • 我需要读/写权限
  • docker 基本上是进程隔离,一个容器应该不能在宿主机上做太多事情。如果您无法使用正确的参数启动运行命令,则会出现问题

标签: docker


【解决方案1】:

我也面临着类似的情况。我想从特权容器本身访问主机的完整文件系统。我这样做的方式是将命名空间更改为主机命名空间,然后执行命令。该命令实际上作用于主机。

在主机上运行以启动容器:

docker run --privileged --pid=host -it xxxxxx

在容器中运行

nsenter -t 1 -m -u -n -i <COMMAND>

命令将在主机上执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 2020-03-12
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多