【问题标题】:How to know if a docker container is running in privileged mode如何知道 docker 容器是否以特权模式运行
【发布时间】:2015-11-15 15:35:40
【问题描述】:

想通过 bash 脚本了解当前运行的容器是否以--privileged 模式从容器内部(而不是主机)启动。

目前,我坚持传递带有标志的 env var,但这不是一个理想的解决方案。

【问题讨论】:

    标签: bash shell docker containers dockerfile


    【解决方案1】:

    来自 docker 主机

    使用docker inspect 命令:

    docker inspect --format='{{.HostConfig.Privileged}}' <container id>
    

    在 bash 脚本中,您可以进行测试:

    if [[ $(docker inspect --format='{{.HostConfig.Privileged}}' <container id>) == "false" ]]; then
        echo not privileged
    else
        echo privileged
    fi
    

    从容器内部

    您必须尝试运行需要--privileged 标志的命令并查看它是否失败

    例如ip link add dummy0 type dummy 是一个需要--privileged 标志才能成功的命令:

    $ docker run --rm -it ubuntu ip link add dummy0 type dummy
    RTNETLINK answers: Operation not permitted
    

    同时

    $ docker run --rm -it --privileged ubuntu ip link add dummy0 type dummy
    

    运行良好。

    在 bash 脚本中,您可以执行类似的操作:

    ip link add dummy0 type dummy >/dev/null
    if [[ $? -eq 0 ]]; then
        PRIVILEGED=true
        # clean the dummy0 link
        ip link delete dummy0 >/dev/null
    else
        PRIVILEGED=false
    fi
    

    【讨论】:

    • 我正在尝试使容器具有特权,并使用 Ansible 的docker_container 添加大写字母,但没有成功,没有错误消息,但最后容器根本没有在特权模式下运行。有人对此有解决办法吗?
    • docker inspect 网址已更改
    【解决方案2】:

    如果您的 docker run 命令具有 -v /var/run/docker.sock:/var/run/docker.sock,则从容器内部,您的 docker 命令(docker psdocker inspect 或任何)将可用

    【讨论】:

    • 真实但矫枉过正恕我直言。这也使容器可以完全访问主机。
    • 如何将 docker 套接字链接到容器以提供对主机的完全访问权限?有很多人从主机链接 docker 可执行文件。
    • 除非您在容器中安装 docker 或以奇怪的方式使用 API,否则 docker 命令不可用。而且,真的,这将是矫枉过正。受损的容器可能会造成严重破坏。
    • @RomeoMihalcea 访问 Docker 守护程序允许您在任意配置的容器中运行任意命令。一种利用是,由于您可以将主机上的任何文件或目录挂载到容器中,因此您可以修改主机上的任何文件。这是主机上leveraging Docker for root access 的示例。 (以某种方式阻止了这条特定的途径仍然会留下许多其他漏洞。)
    • 确实是不良的安全实践,除非绝对必要,否则应避免,并尽可能隔离(例如,k8s 中的专用节点,具有专用 PSP/用户帐户)。 @cjs +1
    猜你喜欢
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2021-08-23
    • 2018-03-25
    • 2020-05-13
    • 1970-01-01
    相关资源
    最近更新 更多