Linux系统Ubuntu以非root用户身份操作Docker的方法

  本文介绍在Linux操作系统Ubuntu版本中,通过配置,实现以非root用户身份,进行Docker各项操作的具体方法。

  在文章Linux系统Ubuntu配置Docker详细流程(https://blog.csdn.net/zhebushibiaoshifu/article/details/132612560)中,我们介绍了开源容器化平台和工具集Docker的详细配置方法;配置完毕后,Docker就已经可以正常使用了,但是还有着一个小问题——我们在Unix系统中进行Docker的各项操作时,由于Docker是和Unix的套接字(Socket)绑定的,而套接字归属于系统的root用户,非root用户如果需要访问它,就只能通过sudo命令实现;这也导致了,我们运行Docker时都必须要以root用户身份(也就是通过sudo命令)来实现。这就使得我们在执行很多和Docker有关的命令时,都需要输入一次root用户的密码,导致较为麻烦。那么,我们是否可以取消这一个限制呢?

  答案是可以的,我们可以通过新建一个Unix用户组的方式,来实现上述需求。我们需要建立一个用户组,将其命名为docker,并将我们当前的非root用户放入这一个用户组中;这样操作之后,当Docker启动时,其会创建一个可供docker用户组成员访问的Unix套接字,从而使得我们可以用非root用户身份来进行后续的各项操作。

  为完成上述工作,具体需要的操作如下。其中,本文所涉及的全部代码,都在终端中执行即可。

  首先,执行如下的代码,创建名为docker的一个用户组。其中,groupadd是一个Linux系统命令,用于创建用户组;docker就是我们接下来要创建的用户组的名称。

sudo groupadd docker

  运行上述代码,如下图所示。

  接下来,执行如下的代码,将我们当前的非root用户放入刚刚创建的用户组中。其中,usermod是一个Linux系统命令,用于修改用户的属性和组关联;-aGusermod命令的选项,其中-a表示追加(Append),-G表示指定用户所属的附加组;docker是要将用户添加到的用户组的名称;$USER是一个环境变量,表示当前用户的用户名。

sudo usermod -aG docker $USER

  运行上述代码,如下图所示。

  随后,执行如下的代码,切换当前会话的有效组。其中,newgrp是一个Linux系统命令,用于切换当前会话的有效组;docker是我们要切换到的目标组的名称。

newgrp docker

  运行上述代码,如下图所示。

  随后,就完成了我们的配置工作。此时,我们可以通过如下的代码,验证一下我们是否已经成功完成前述配置;该命令会下载一个测试映像并在容器中运行它。

docker run hello-world

  运行上述代码,如下图所示。

  如果出现了上图所示的界面,就表示我们前述配置已经成功完成。在我们上一篇文章文章Linux系统Ubuntu配置Docker详细流程(https://blog.csdn.net/zhebushibiaoshifu/article/details/132612560)中,当时也用了这一句代码来测试Docker是否配置成功,而当时这一句代码的前面是需要有sudo字样的,如下图所示;而经过我们上述配置,就无需这个sudo了。

  当然,如果大家运行了前述docker run hello-world代码后,出现了报错的情况,大家则可以参考Docker的官方网站,其中有对这一问题的说明。

  至此,大功告成。

欢迎关注:疯狂学习GIS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/95100.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在VScode中使用sftp传输本地文件到服务器端

安装SFTP 在VScode的扩展中安装sftp 注意这里需要在你没连接服务器的状态下安装,即本机需要有sftp 配置传输端口 安装成功后,使用快捷键"ctrlshiftp",输入sftp,选择Config 根据自己的实际情况修改配置文件,主要改h…

【zookeeper】zookeeper介绍

分布式协调技术 在学习ZooKeeper之前需要先了解一种技术——分布式协调技术。那么什么是分布式协调技术?其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的…

leetcode 189. 轮转数组

2023.9.3 k的取值范围为0~100000,此时需要考虑到两种情况,当k为0时,此时数组不需要轮转,因此直接return返回;当k大于等于数组nums的大小时,数组将会转为原来的数组,然后再接着轮转,此…

vue3中axios的使用方法

在Vue 3中使用axios发送HTTP请求的方法与Vue 2中基本相同。首先,需要安装axios库: npm install axios然后,在Vue组件中引入axios: import axios from axios;接下来,可以在Vue组件的方法中使用axios发送HTTP请求。例如…

vue 从后端取图片返回发现是两张,但自己只要一张图片 怎么操作

1.用JavaScript里边常用的分隔符去操作 item.original_status.user.profile_image_url.split(,)[0] <van-imagewidth"100"height"100":src"item.original_status.user.photo_domain item.original_status.user.profile_image_url.split(,)[0]&quo…

2023年高教社杯 国赛数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 最短时…

阿里云效和阿里在线idea使用

阿里云效 https://flow.aliyun.com/all?page1 阿里在线idea&#xff1a;https://ide.aliyun.com/ 在云效中创建的项目可以在在线idea 打开 运行中的项目 设置ssh 设置以后可以使用云效率的代码构建来构建代码 设置 添加自有云或者体验5h

AR界安卓在中国,Rokid引爆空间计算狂潮

击关注 文丨刘雨琦 你可能很难想象&#xff0c;在一个没有显示屏也没有鼠标的空间&#xff0c;仅凭一副AR眼镜和一台口袋主机&#xff0c;就能完成一篇5000字的文章。 没错&#xff0c;8月26日&#xff0c;在2023 Rokid Jungle 新品发布会现场&#xff0c;这样的场景正在真实…

对分库分表进行批量操作

对ShardingJDBC基础了解&#xff1a;https://blog.csdn.net/m0_63297646/article/details/131894472 对批量操作案例&#xff1a;https://blog.csdn.net/m0_63297646/article/details/131843517 分为db0和db1两个库&#xff0c;每个库都有三张订单表&#xff0c;分表键根据年份…

JavaScript 生成 16: 9 宽高比

这篇文章只是对 for 循环一个简单应用&#xff0c;没有什么知识含量。 可以跳过这篇文章。 只是我用来保存一下我的代码&#xff0c;保存在本地我嫌碍眼&#xff0c;总想把他删了。 正文部分 公式&#xff1a;其中 width 表示宽度&#xff0c;height 表示高度 16 9 w i d t…

算法通过村第四关-栈白银笔记|括号问题

文章目录 前言1. 括号匹配问题2. 最小栈问题3. 最大栈 总结 前言 提示&#xff1a;如果让我送给年轻人四个字&#xff0c;就是&#xff1a;量力而行。 量力而行不会失眠&#xff0c;不会啃老&#xff0c;不会为各种考试焦虑。顺其自然活得轻松。其实&#xff0c;量力而行最易大…

大数据Flink(七十一):SQL的时间属性

文章目录 SQL的时间属性 一、Flink三种时间属性简介