Linux 普通用户执行 docker 命令

Posted catoop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 普通用户执行 docker 命令相关的知识,希望对你有一定的参考价值。

在有些环境中,安装 docker 可以提供 root 命令安装,但是后期的 docker 镜像和容器的维护可能不允许 root 用户操作,这种情况就需要给普通用户授权可以操作 docker 命令。

主要的底层逻辑就是将普通用户添加到 docker 用户组中,命令操作步骤如下:

用户组检查

以下操作使用 root 用户操作

1、检查 docker.sock 文件所属用户组

[root@demo ~]# ll /var/run/docker.sock 
srw-rw---- 1 root docker 0 Nov 25 13:51 /var/run/docker.sock

2、检查 docker 用户组是否存在

[root@demo ~]# cat /etc/group |grep docker
docker:x:1000:

如果不存在用户组 docker,创建命令为 groupadd docker

3、如果第1步查看 /var/run/docker.sock 不在 docker 用户组中,则需要将 docker.sock 添加到 docker 用户组中

[root@demo ~]# chgrp docker /var/run/docker.sock

授权操作

为了演示,本例重新创建一个普通用户 test1

1、创建用户

[root@demo ~]# adduser test1
[root@demo ~]# passwd test1

2、将普通用户添加到 docker 用户组中

[root@demo ~]# gpasswd -a test1 docker

验证

切换到普通用户操作 docker 命令验证效果

1、切换到普通用户

[root@demo ~]# su - test1

2、查看当前用户所属组

[test1@demo ~]$ id
uid=1000(test1) gid=1001(test1) groups=1001(test1),1000(docker)

3、执行docker命令验证结果

[test1@demo ~]$ docker images
REPOSITORY       TAG       IMAGE ID       CREATED         SIZE
[test1@demo ~]$ docker ps
CONTAINER ID   IMAGE       COMMAND       CREATED       STATUS         PORTS         NAMES

(END)

以上是关于Linux 普通用户执行 docker 命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux下普通用户无法使用docker命令的解决办法

dial unix /var/run/docker.sock: connect: permission denied | 解决linux普通用户没有docker执行权限问题

dial unix /var/run/docker.sock: connect: permission denied | 解决linux普通用户没有docker执行权限问题

dial unix /var/run/docker.sock: connect: permission denied | 解决linux普通用户没有docker执行权限问题

dial unix /var/run/docker.sock: connect: permission denied | 解决linux普通用户没有docker执行权限问题

linux下docker使用普通权限运行