设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间06 现在时间06 缓存数据 没有太晚的开始,不如就从今天行动。总有一天,那个一点一点可见的未来,会在你心里,也在你的脚下慢慢清透。生活,从不亏待每一个努力向上的人。 ​

没有太晚的开始,不如就从今天行动。总有一天,那个一点一点可见的未来,会在你心里,也在你的脚下慢慢清透。生活,从不亏待每一个努力向上的人。 ​

查看: 91|回复: 0

让非root用户构建Docker镜像的三种方法

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:204
  • 打卡月天数:0
  • 打卡总奖励:3221
  • 最近打卡:2023-08-27 04:32:00
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
446
主题
416
精华
0
金钱
4524
积分
887
注册时间
2022-12-25
最后登录
2025-5-31

发表于 2025-5-31 06:14:16 | 显示全部楼层 |阅读模式
前言

在默认情况下,Docker 需要
  1. root
复制代码
权限或
  1. sudo
复制代码
才能运行。这对于日常开发和 CI/CD 流水线可能不够方便,也可能带来安全隐患。那么,如何让 非 root 用户 也能构建和运行 Docker 容器呢?
本篇文章将介绍 三种方法 来实现这一目标,并推荐最佳实践。

方法 1:将用户加入 Docker 组(推荐)

Docker 允许
  1. docker
复制代码
组的用户运行 Docker 命令,因此最简单的方法是将你的用户加入
  1. docker
复制代码
组。

  • 创建 Docker 组(如果不存在)
  1. sudo groupadd docker
复制代码

  • 将用户加入 Docker 组
  1. sudo usermod -aG docker $USER
复制代码

  • 如果你要添加其他用户,替换 $USER 为具体的用户名:
  1. sudo usermod -aG docker your-username
复制代码

  • 重新登录使权限生效
执行以下命令让组权限立即生效,或者注销并重新登录:
  1. newgrp docker
复制代码

  • 测试是否生效
  1. docker ps
复制代码
如果能正确输出 Docker 运行中的容器列表,而 不需要
  1. sudo
复制代码
,则说明配置成功。

方法 2:使用 sudo 运行 Docker(不推荐)

如果你不想修改用户组,可以在每次执行 Docker 命令时使用
  1. sudo
复制代码
  1. sudo docker build -t myimage .
复制代码
但这样使用起来不方便,并且某些 CI/CD 或自动化脚本可能不兼容 sudo,所以 不推荐 这种方式。

方法 3:使用 Docker Rootless 模式

Docker 提供了 Rootless Mode(无特权模式),允许普通用户运行 Docker 容器,而无需 root 权限。

  • 安装 Rootless Docker
  1. curl -fsSL https://get.docker.com/rootless | sh
复制代码

  • 设置环境变量
安装完成后,执行以下命令来配置环境变量:
  1. export PATH=$HOME/bin:$PATH
  2. export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock
复制代码
让这些配置永久生效:
  1. echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
  2. echo 'export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock' >> ~/.bashrc
  3. source ~/.bashrc
复制代码

  • 启动 Rootless Docker
  1. systemctl --user start docker
复制代码
Rootless 模式适用于不允许修改系统用户组的环境,比如某些企业级服务器。

总结

方法适用场景推荐级添加用户到
  1. docker
复制代码
适用于大多数情况,安全且便捷⭐⭐⭐⭐⭐(推荐)使用
  1. sudo
复制代码
运行 Docker适用于临时使用,但不够方便⭐⭐⭐(不推荐)Docker Rootless 模式适用于不能修改用户组的环境⭐⭐⭐⭐最佳实践
如果你的服务器上有多个开发人员共用 Docker,建议使用
  1. docker
复制代码
组方式
,这样既安全又方便。
你可以使用以下命令快速完成设置:
  1. sudo groupadd docker
  2. sudo usermod -aG docker $USER
  3. newgrp docker
  4. docker ps  # 测试是否生效
复制代码
如果
  1. docker ps
复制代码
仍然报错,尝试 重新登录系统重启 Docker
  1. sudo systemctl restart docker
复制代码
这样,你的非 root 用户就可以 直接运行 Docker 并构建镜像 了!
到此这篇关于让非root用户构建Docker镜像的三种方法的文章就介绍到这了,更多相关非root用户构建Docker镜像内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表