当前位置: 首页 > news >正文

安装Docker后的一些配置

文章目录

    • 作为非root用户管理Docker
    • 配置Docker开机自启动

作为非root用户管理Docker

Docker守护进程是和一个Unix socket绑定的。默认情况下这个Unix socket的拥有者是root用户,其他用户只能通过sudo命令进行访问。Docker守护进程始终是以根用户的身份运行。

在这里插入图片描述

那普通用户如果不想每次在执行docker命令时都要在前面添加sudo,应该怎么办呢?在上图中可以注意到docker.sock的用户组docker的权限为rw,跟其用户权限一样,说明只要将普通用户添加到docker这个用户组中,对于这个文件,普通用户就拥有和root用户相同的权限,执行docker命令时也就不需要在前面加sudo了。

网上有很多文章说要先创建docker用户组,可能以前需要,但是现在在安装Docker的同时也会创建docker这个用户组,默认情况下,它不会向组中添加任何用户。所以现在不需要我们手动创建用户组。通过查看文件/etc/group可以看到docker这个用户组已经存在了,且组中没有任何用户:

在这里插入图片描述

  1. 添加普通用户到docker用户组

    sudo usermod -aG docker $USER
    
    • -a, --append:表示追加的意思,将指定的用户追加到指定的一个或多个补充组(supplementary group),仅与-G选项一起使用。

    • -G, --groups:指定一个或多个补充组(supplementary group),有多个的时候用逗号分隔。单独使用时,如果用户当前是未列出的组的成员,则该用户将从该组中删除。与-a选项一起使用时,则会将用户追加到这些组中。

    • $USER:表示当前登录的用户

    执行命令后可以看到我的用户已经在docker这个用户组里面了:

    在这里插入图片描述

  2. 使用户组的改变生效

    改变用户的群组之后需要重启系统后才能生效

    在Linux中,也可以执行下面的命令让用户组的改变生效:

    newgrp docker
    
  3. 验证是否可以在不使用sudo的情况下运行docker命令

    docker run hello-world
    

    在这里插入图片描述

    在不加sudo的情况下,普通用户也可以正常运行docker命令了。

配置Docker开机自启动

先看看当前Docker是否为开机启动:

sudo systemctl status docker

在这里插入图片描述

红色方框张的disabled表示Docker没有配置开机自启动

使用如下命令将Docker配置为开机自启动:

sudo systemctl enable docker

在这里插入图片描述

可以看到红色方框的位置由之前的disabled变为enabled了,说明Docker是处于开机自启动的状态了

这时候重启系统,无需手动启动Docker就可以直接运行docker命令了。

相关文章:

  • 智能驾驶功能软件平台设计规范第三部分:预测功能服务接口
  • 网课搜题公众号在线制作
  • Linux性能优化思路和方法
  • 什么是数据仓库?
  • 01|一条SQL查询语句是如何查询的?
  • NLP基础
  • 公众号查题系统平台
  • 129、LeetCode-392.判断子序列
  • Python面向对象编程
  • java计算机毕业设计霍山石斛网站源码+数据库+系统+lw文档+mybatis+运行部署
  • Python文件处理与垃圾回收机制
  • java计算机毕业设计基于MVC框架的在线书店设计源码+数据库+系统+lw文档+mybatis+运行部署
  • 计算机毕业设计springboot+vue基本微信小程序的外卖点餐订餐平台
  • 文件用手机拍照片打印时,打印出来总是有黑阴影,如何去掉黑色阴影打印清晰的图片
  • okhttp3与旧版本okhttp的区别分析
  • Apache的基本使用
  • JavaScript 奇技淫巧
  • Java深入 - 深入理解Java集合
  • java中具有继承关系的类及其对象初始化顺序
  • js如何打印object对象
  • leetcode98. Validate Binary Search Tree
  • mysql中InnoDB引擎中页的概念
  • orm2 中文文档 3.1 模型属性
  • SQL 难点解决:记录的引用
  • yii2权限控制rbac之rule详细讲解
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 工作手记之html2canvas使用概述
  • 基于web的全景—— Pannellum小试
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 如何编写一个可升级的智能合约
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 深度学习入门:10门免费线上课程推荐
  • 试着探索高并发下的系统架构面貌
  • 一道闭包题引发的思考
  • 在electron中实现跨域请求,无需更改服务器端设置
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​马来语翻译中文去哪比较好?
  • #mysql 8.0 踩坑日记
  • #QT(TCP网络编程-服务端)
  • (13):Silverlight 2 数据与通信之WebRequest
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)setTimeout 和 setInterval 的区别
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ./和../以及/和~之间的区别
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET6实现破解Modbus poll点表配置文件