服务器 
首页 > 服务器 > 浏览文章

不使用sudo 执行Docker命令的方法

(编辑:jimmy 日期: 2024/12/31 浏览:3 次 )

Problem

默认安装完 docker 后,每次执行 docker 都需要运行 sudo 命令,非常浪费时间影响效率。

如果不跟 sudo,直接执行 docker images 命令会有如下问题:

[liujun@li1581-58 ~]$ docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host"htmlcode">
[liujun@li1581-58 ~]$ sudo ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 6月  7 01:47 /var/run/docker.sock

启动docker时,使用sudo 启动,用的是root权限,普通用户是没有权限访问/var/run/docker.sock。

该进程所属docker组

而 docker 组具有 setuid 权限(详见 srw-rw—- 意义)

所以只需要把用户加入到docker组就行了。

解决步骤:

创建group组

如果还没有 docker group 就添加一个:

添加当前用户用户到docker组

 [liujun@li1581-58 ~]$ sudo groupadd docker
 [liujun@li1581-58 ~]$ sudo gpasswd -a ${USER} docker
正在将用户“liujun”加入到“docker”组中

重启 docker 服务

[liujun@li1581-58 ~]$ sudo service docker restart
Redirecting to /bin/systemctl restart docker.service

切换会话

newgrp - docker

因为 groups 命令获取到的是缓存的组信息,

刚添加的组信息未能生效, 所以需要切换当前会话到新的组

检查

[liujun@li1581-58 ~]$ docker ps
CONTAINER ID    IMAGE                 COMMAND         CREATED       STATUS       PORTS          NAMES
99b7e7fdbbcd    docker.io/amorphobia/docker-ssserver  "/usr/local/bin/ssser"  3 months ago    Up 3 minutes    0.0.0.0:6868->6868/tcp  boring_roentgen
4db3d279d762    docker.io/amorphobia/docker-ssserver  "/usr/local/bin/ssser"  3 months ago    Up 3 minutes    0.0.0.0:9797->9797/tcp  silly_franklin

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

上一篇:Bash中文件描述符的详细介绍
下一篇:VIM实现文件快速跳转插件详解
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?