• Docker从入门到精通——以非 root 用户身份管理 Docker


    以非 root 用户身份管理 Docker 

      Docker 守护进程绑定到 Unix 套接字而不是 TCP 端口。默认情况下,Unix 套接字归用户所有root,其他用户只能使用sudo。

      Docker 守护程序始终以root用户身份运行。

      如果您不想在 docker 命令前加上sudo,请创建一个名为 Unix 组 docker 并将用户添加到其中。当 Docker 守护进程启动时,它会创建一个可供 docker 组成员访问的 Unix 套接字。

    警告:

    该docker组授予与root 用户等效的权限。有关这如何影响系统安全性的详细信息,请参阅 Docker Daemon Attack Surface(https://docs.docker.com/engine/security/#docker-daemon-attack-surface)。

    注意:

    要在没有 root 权限的情况下运行 Docker,请参阅 以非 root 用户身份运行 Docker 守护程序(无根模式 https://docs.docker.com/engine/security/rootless/)。

      要创建docker组并添加您的用户:

    1、创建 docker 用户组:

     sudo groupadd docker
    

    2、将您的用户添加到docker组中。

     sudo usermod -aG docker $USER
    

    3、注销并重新登录,以便重新评估您的组成员身份。

    newgrp docker 
    

    4、验证您是否可以在docker没有sudo.

    docker run hello-world

      此命令下载 test image 并在容器中运行它。当容器运行时,它会打印一条消息并退出。

      如果您sudo在将用户添加到docker组之前最初使用 Docker CLI 命令运行,您可能会看到以下错误,这表明您的~/.docker/目录是由于sudo命令而使用不正确的权限创建的。

    WARNING: Error loading config file: /home/user/.docker/config.json -
    stat /home/user/.docker/config.json: permission denied

      要解决此问题,请删除~/.docker/目录(它会自动重新创建,但会丢失任何自定义设置),或使用以下命令更改其所有权和权限:

     sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
     sudo chmod g+rwx "$HOME/.docker" -R
  • 相关阅读:
    leetcode-22 括号生成
    Mysql安装与使用(详细)
    java开发环境的搭建
    LeetCode 55. Jump Game
    LeetCode 31. Next Permutation
    2019.1.12国家开发银行(国开行)笔试【补录】+ 面试总结
    苹果电脑MAMP环境配置以及关于“星球大战”知识图谱的复现
    创新工场-Deecamp2019冬令营笔试A卷 AND 面试内容
    使用scp命令在mac本机和linux服务器之间传输数据
    python小技巧之多行缩进,获取程序运行时间,删除非空文件夹
  • 原文地址:https://www.cnblogs.com/zuoyang/p/16355382.html
Copyright © 2020-2023  润新知