• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > 不使用sudo 执行Docker命令的方法

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

作者:genghaihua 字体:[增加 减小] 来源:互联网

本文主要包含docker,不使用sudo,免sudo使用docker命令等服务器相关知识,genghaihua 希望可以进行参考

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?
[liujun@li1581-58 ~]$ ps -ef | grep docker
root   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=false
root   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=true
root   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 9797
root   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-current
root   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 6868
root   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-current
liujun  19302 19028 0 01:45 pts/0  00:00:00 grep --color=auto docker

原因分析

[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

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

您可能感兴趣的文章:

  • 如何免sudo使用docker命令详解
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Docker实践8:Compose,docker实践compose
  • Docker buildx构建多平台镜像并推送到私有仓库的方法
  • Docker三个基本概念镜像(Image)容器(Container)仓库(Repository)
  • 什么是Docker?为什么要使用Docker
  • docker 开源的应用容器引擎
  • 如何给docker设置http代理
  • docker官方mysql镜像自定义配置详解
  • 详解Docker数据管理(数据卷&数据卷容器)
  • 如何利用Docker容器实现代理转发与数据备份详解
  • 详解Docker Swarm 在持续集成测试中的应用

相关文章

  • CentOS7 禁用Transparent Huge Pages的实现方法
  • Openstack 使用migrate进行数据库升级实现方案详细介绍
  • 详解Docker-compose networks 的例子
  • 在具有共享存储的xen Server上实现共享VM的启动方法
  • docker Nginx PHP-FPM单机多站点布署的方法
  • Docker 网络命令详解
  • CentOS7.2部署OpenStack(一)—环境准备
  • 详解Docker方式实现MySql 主从复制(实践篇)
  • 详解ASP.NET Core 网站在Docker中运行
  • Docker 修改文件是否需要重启(命令详解)

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • [Azure]如何定位虚拟机内部附加的数据磁盘
    • Docker多容器连接(以Tomcat+Mysql为例)
    • Docker 数据卷,数据卷容器详细介绍
    • docker中Dockerfile方式建立镜像HelloWorld
    • Vmware vSphere Client安装虚拟机图文教程
    • docker在ubuntu14.04下的安装步骤
    • Docker 教程之Docker Hub详细介绍
    • 关于Hyper-V备份的四大注意事项
    • 详解ASP.NET Core Docker部署
    • Docker v1.13 新功能介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有