×

使用非root身份运行docker

Falcon 2024-11-19 views:
自动摘要

正在生成中……

将当前用户加入docker用户组

sudo groupadd docker
sudo usermod -aG docker $USER

退出当前用户,重新登入,或者在会话中运行下列命令,立即切换获得 docker 用户组身份。

newgrp docker

附 newgrp命令解析:

newgrp docker 是一个 Linux 命令,用于将当前 shell 的用户组切换为 docker 组,以便继承该用户组的权限。以下是该命令的作用及其常见场景:

作用

  1. 切换用户组

    • 在 Linux 中,用户可以属于多个组,每个组赋予特定权限。
    • newgrp docker 将当前会话切换到 docker 用户组,使用户临时获得该组的权限。
  2. 无需重新登录即可生效

    • 当将用户添加到某个组(例如 docker)后,通常需要重新登录才能使权限生效。
    • 使用 newgrp docker 可以避免重新登录,立即获得 docker 组的权限。
  3. 创建新 shell

    • 该命令会启动一个新的 shell 环境,该环境继承了 docker 组的权限。

使用场景

  • 用户添加到 docker 组后立即使用权限

    • 当用户被添加到 docker 组后,通过 newgrp docker 即可运行与 Docker 相关的命令(如 docker ps)而无需重新登录。
  • 临时以某用户组身份执行命令

    • 用户可能需要切换到特定用户组(如 docker)临时执行某些命令。

注意事项

  1. 持久性

    • 通过 newgrp docker 切换用户组的效果仅限于当前 shell 会话,退出 shell 后会恢复到原来的默认组。
  2. 权限检查

    • 确保用户已被正确添加到 docker 组,使用 groups 命令可以检查当前用户所属的组。

示例

  1. 检查当前用户的组:

    groups
    
  2. 将用户添加到 docker 组(需要 root 权限):

    sudo usermod -aG docker $USER
    
  3. 切换到 docker 组:

    newgrp docker
    
  4. 验证是否拥有 docker 权限:

    docker ps
    

通过这些步骤,你可以在无需重新登录的情况下立即使用 docker 组的权限。

本文收录于