gpt4 book ai didi

docker - 突破 Docker 容器到主机文件系统的 root

转载 作者:行者123 更新时间:2023-12-02 18:10:28 26 4
gpt4 key购买 nike

我正在关注文章中链接的以下 youtube 视频,该视频允许 docker 容器在主机上获得 root 访问权限。

有几个步骤不清楚,有人可以解释一下它们是如何进一步工作的吗?

https://www.lvh.io/posts/dont-expose-the-docker-socket-not-even-to-a-container.html

    Step 1> Bind mount /var/run/docker.sock from host to container
Step 2> Install docker in container <<< at this stage I see that docker ps
-a shows all the containers which are present on the host.
**QUESTION:** How can the container see the containers present on the host? Is it because dockerd on the new container is using /var/run/docker.sock on the host? netstat/ss in the new container doesn't show anything..

Step 3> Run another container from the 1st container. Pass the following parameters to it:
docker run -dit -v /:/host ubuntu

Intention of this is to mount / from host filesystem to /host in the 2nd container being created
**QUESTION:** How does the 1st container have access to / (being filesystem of the host?)

谢谢。

最佳答案

Docker 作为 service 运行在主机上。此 service通过套接字与客户端通信,默认情况下,它是 unix 套接字:unix:/var/run/docker.sock .

当您与任何容器共享此套接字时,该容器将获得对 docker 守护程序的完全访问权限。从那里,容器可以启动其他容器,删除容器/卷/等,甚至可以随意将卷从主机映射到新容器,例如,如您的问题 -v /:/host 中所述。 .这样做将使容器 root 访问 /host/ 中的主机文件系统。 .

简而言之:你应该小心地与任何你不信任的容器共享这个宝贵的套接字。在某些情况下,共享套接字是有意义的(例如 portainer :用作 docker 管理 GUI 的容器)。

关于docker - 突破 Docker 容器到主机文件系统的 root,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57871399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com