千家信息网

不使用sudo如何执行Docker命令

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下不使用sudo如何执行Docker命令,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Problem默认安装完 docker 后,每次执行 docker 都需要运行
千家信息网最后更新 2025年12月02日不使用sudo如何执行Docker命令

小编给大家分享一下不使用sudo如何执行Docker命令,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

Problem

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

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

[liujun@li1581-58 ~]$ docker psCannot connect to the Docker daemon. Is the docker daemon running on this host?[liujun@li1581-58 ~]$ ps -ef | grep dockerroot   7427   1 0 4月24 ?    00:13:22 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --selinux-enabled --log-driver=journald --signature-verification=falseroot   7431 7427 0 4月24 ?    00:01:13 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc --runtime-args --systemd-cgroup=trueroot   7738 7427 0 4月24 ?    00:00:02 /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 9797 -container-ip 172.17.0.2 -container-port 9797root   7762 7431 0 4月24 ?    00:00:03 /usr/bin/docker-containerd-shim-current 4db3d279d762fd42a7ba9e773ba47d6b6d61c157247afd395c4a83ae8a35ca77 /var/run/docker/libcontainerd/4db3d279d762fd42a7ba9e773ba47d6b6d61c157247afd395c4a83ae8a35ca77 /usr/libexec/docker/docker-runc-currentroot   7837 7427 0 4月24 ?    00:00:02 /usr/libexec/docker/docker-proxy-current -proto tcp -host-ip 0.0.0.0 -host-port 6868 -container-ip 172.17.0.3 -container-port 6868root   7852 7431 0 4月24 ?    00:00:08 /usr/bin/docker-containerd-shim-current 99b7e7fdbbcd10245672a220154a9a7bc0d9d91a7a7fb641a778e60559089159 /var/run/docker/libcontainerd/99b7e7fdbbcd10245672a220154a9a7bc0d9d91a7a7fb641a778e60559089159 /usr/libexec/docker/docker-runc-currentliujun  19302 19028 0 01:45 pts/0  00:00:00 grep --color=auto docker

原因分析

[liujun@li1581-58 ~]$ sudo ls -l /var/run/docker.socksrw-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 restartRedirecting to /bin/systemctl restart docker.service

切换会话

newgrp - docker

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

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

检查

[liujun@li1581-58 ~]$ docker psCONTAINER ID    IMAGE                 COMMAND         CREATED       STATUS       PORTS          NAMES99b7e7fdbbcd    docker.io/amorphobia/docker-ssserver  "/usr/local/bin/ssser"  3 months ago    Up 3 minutes    0.0.0.0:6868->6868/tcp  boring_roentgen4db3d279d762    docker.io/amorphobia/docker-ssserver  "/usr/local/bin/ssser"  3 months ago    Up 3 minutes    0.0.0.0:9797->9797/tcp  silly_franklin

看完了这篇文章,相信你对"不使用sudo如何执行Docker命令"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

命令 用户 权限 信息 篇文章 切换 普通 原因 原因分析 完了 意义 所属 效率 时间 更多 正在 步骤 知识 缓存 行业 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 当今网络安全主要特点是整体的 青岛商友网络技术 汽车网络技术的优点是什么 excel 清空数据库表 北京搜狗网络技术有限公司 电脑怎么变成网络文件服务器 想做一名网络安全工程师 服务器装ubuntu系统 手机玩的三国单机游戏没有服务器 qt上传数据库到服务器 维护国家网络安全展板 湖北银河信息技术学院网络安全 网络安全微课获奖 服务器f8进不去安全模式 南通idc服务器厂商 网络技术春考可以报考哪些专业 巨龙网络安全 做软件开发的会需要到短信吗 软件开发工具的软件 河南1u服务器机箱上哪找 pbe显示未连接到下载服务器 中国经济真菌数据库 天津软件开发驻场哪家好 运营我的世界服务器需要 qt上传数据库到服务器 软件测试 一定要学数据库 纯软件开发的出路 福州信达宇网络技术有限公司 dsp的软件开发平台有哪些 数据库事务 银行转账过程
0