Centos非root用户如何使用Docker

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

背景

最近,有些项目是基于 docker 写的。但是 docker 是需要 root 权限的,如果没有 root 权限的普通用户将没有办法操作 docker。下面给出两个修改的方法,来完成普通用户的操作的请求。

解决办法

一. 赋予普通用户 root 权限

需要修改:/etc/sudoers

ruby 复制代码
# 现在是不可更改的,需要调整权限:chmod 0755 sudoers (需要root权限的)
root@SRV252:/etc# ll sudoers
-r--r----- 1 root root 815 Feb 23 13:06 sudoers

将 sudoers 文件中的,以下内容进行修改

ini 复制代码
# User privilege specification
root    ALL=(ALL:ALL) ALL
name1  ALL=(ALL:ALL) ALL # 使用sudo时,仍需要密码的
name2   ALL=(ALL:ALL) NOPASSWD: ALL # 使用sudo时候,不要密码(免密的)

普通用户可以使用 docker 了

二. 添加普通用户到 docker 组

docker 安装之后默认会创建 docker 组,docker 组拥有读取套接字权限,因此将该普通用户加入 docker 组,该组下所有用户有访问 unix 套接字权限,最后刷新用户的初始组即可。

查看是否有 docker 用户

bash 复制代码
test@ubuntu:~$ sudo cat /etc/group |grep docker
docker:x:999:  # 表示存在

如果没有需要手动增加

复制代码
sudo groupadd docker

查看 /var/run/docker.sock 的属性

arduino 复制代码
ll /var/run/docker.sock

srw-rw---- 1 root root 0 Oct 29 22:20 /var/run/docker.sock

如果/var/run/docker.sock的用户组不是docker,而是root需要使用chgrp修改。

bash 复制代码
chgrp docker /var/run/docker.sock

将普通用户test添加至 docker 组

bash 复制代码
# 添加
test@:~$ sudo gpasswd -a test docker
Adding user test to group docker

# 查看,此时不在,需要刷新
test@ubuntu:~$ id
uid=1002(test) gid=1002(test) groups=1002(test)

# 刷新
test@ubuntu:~$ newgrp docker
相关推荐
程序员海军3 小时前
用了两年多 GPT,我最近开始换模型了,还折腾了个求职避坑 Agent
前端·人工智能·后端
码士集团小青3 小时前
SpringBoot 集成缓存性能之王 Caffeine
spring boot·后端·缓存
excel5 小时前
IndexNow:让搜索引擎更快发现网站更新的主动通知协议
前端·后端·架构
Json____5 小时前
用 FastAPI + Vue3 打造一套完整的在线考试系统:从组卷到阅卷的业务闭环实践
后端·node.js·fastapi·it学习·wwwoop.com
小灰灰搞电子6 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
专业程序开发源6 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
卷无止境7 小时前
面向arm64桌面客户端开发全景:语言、框架与生态
后端·python
IT_陈寒8 小时前
JavaScript的闭包陷阱,这个坑我躺了三天才爬出来
前端·人工智能·后端
用户8356290780518 小时前
如何使用 Python 对 Excel 数据进行分组和分级显示
后端·python
vx_Biye_Design8 小时前
django房屋租赁推荐系统78455-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·express