gpt4 book ai didi

macos - 在容器内 chowning 主机的绑定(bind) `docker.sock` 会破坏主机 docker

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

在 Docker for Mac 的 Vanilla 安装中,我的 docker.sock归我的本地用户所有:

$ stat -c "%U:%G" /var/run/docker.sock

juliano:staff

即使我在我的 Dockerfile 上添加用户和组,当尝试以我的身份运行 DinD 时, docker.sock 的挂载使用 root:root 创建.

$ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--group-add staff \
--user $(id -u):$(id -g) \
"your-average-container:latest" \
/bin/bash -c 'ls -l /var/run/docker.sock'

srw-rw---- 1 root root 0 Jun 17 07:34 /var/run/docker.sock

换一种方式,以 root 身份运行 DinD, chown连接套接字,然后运行命令 破坏主机 docker .

$ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--group-add staff \
"your-average-container:latest" \
/bin/bash

$ chown juliano:staff /var/run/docker.sock
$ sudo su juliano
$ docker ps

[some valid docker output]

$ exit

$ docker ps

Error response from daemon: Bad response from Docker engine

我看过 people报告 chowning 是要走的路,所以也许我做错了什么。

问题:
  • 为什么主机 docker 坏了?
  • 有什么方法可以防止主机 docker 中断并且仍然允许我的用户访问 docker 内的套接字?
  • 最佳答案

    我相信,当您安装卷时,所有者 UID/GID 设置为与主机中的相同(--user 标志仅允许您将命令作为特定的 UID/GID 运行并且它没有影响关于已安装卷的权限)

    主要问题是 - 你为什么需要 chown?你不能以root身份运行容器内的命令吗?

    关于macos - 在容器内 chowning 主机的绑定(bind) `docker.sock` 会破坏主机 docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56627486/

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