不用root权限也能运行Docker——细数Docker 1.10的新功能

  Docker 1.10增加了新功能,从这个版本以后,用户在Linux上跑Docker时都不必再以root权限运行了。

  作为容器化产品家族的最新成员,Docker 1.10解决了长期以来一直困扰Docker的一个重大问题。

  到目前为止,所有容器都只能在Docker daemon下以root权限运行,而且各种潜在的安全问题多得要命,看得人头皮发麻。针对这一问题,Docker 1.10推出了用户命名空间功能。其实该功能在1.9版本中已经有了,不过那时还处在尝试阶段,到1.10版以后才正式面向广大用户开放这个功能,当然,1.10版在其他方面也做了改进。下面我们就来看看Docker 1.10都有哪些新亮点。

安全的命名空间
  通过命名空间,Docker 1.10将Docker daemon和容器区别开来,对二者的权限分别加以处理,同时为各个容器分配相应的权限等级。在1.10下,Docker daemon仍然要取得主机的root权限,但容器就可以不用了。

  不过,用户命名空间功能目前还只能在Linux平台上使用,Docker安全部门总监Nathan McCauley也承认这一点。Nathan表示将来Docker会把Windows自有的隔离机制集成到Docker中,而且Docker会实现对所有平台隔离机制的支持。

  作为对用户命名空间的补充,Docker还为提供了插件机制以满足用户在授权方面的需求。管理员可以针对自身所在的机构制定相应规则,Docker会按照这些规则来处理机构内部用户的访问权限。此外,Docker也可以依照设置好的规则来处理各个容器发送的系统调用请求(包括允许调用、禁止调用和跟踪监测三种模式)。

  在之前的版本中,由于Docker只能以root权限运行,所以运行Docker总是会遇到大量的潜在安全问题,这一问题给Docker造成了长期的困扰。对此很多人都颇有微词,比如说CoreOS就一直在个问题上强烈抨击Docker,而且CoreOS还推出了rkt container runtime 1.0,在该版本下,容器不必取得root权限也可以运行。(在rkt环境下可以直接运行Docker容器。)

  其实Docker早就意识到让容器以root权限运行会造成很多问题,为了弥补这个缺陷,Docker花费了大量的精力,研发出了命名空间机制,并先后经历了好几次修改才最终推出1.10这个稳定版本。目前CoreOS旗下的rkt也可以支持该功能,不过还处在尝试阶段。

对网络功能的重构
  除了命名空间以外,Docker 1.10在另外两个问题上也有很大的改进。其中一个是Docker Compose,Docker Compose是Docker的原生容器管理工具,通过它用户就可以在主机上创建多个容器。在Docker 1.10中Docker Compose采用了新的定义规则,可以通过多种方式对容器之间的网络连接加以设置,而Docker的网络连接子系统也为这项功能提供了支持。在创建包含多个容器的应用时,新版的Docker Compose可以大大减少我们的工作量,令主机和容器的设置变得更为简单。

  此外,Docker的网络性能也得到了改善。1.10版本为Docker daemon设置了专门的DNS客户端,这样,Docker就可以自动完成容器发现功能,不用再像以前一样靠/etc/hosts命令来执行发现功能。如有必要,用户也可以向外部服务器发送DNS查询请求。

  同时,Docker 1.10还针对内网环境提供了一项新功能,用户可以通过该功能对容器之间的网络通信加以限定,只需输入一行命令,即可将所有容器的通信范围都限定在用户私有的子网域内。

  Docker 1.10还引入了第三方解决方案,一举搞定了另外一个长期存在的问题——网络连接问题。Docker对这次的改进非常看好,还放出豪言称新版的网络拓扑功能无需经过任何改动即可用来开发基于Docker的应用,还可以直接部署在产品环境中。在以前,Docker因为一直沿用老旧的网络模型而颇受局限,在这一点上没少遭人诟病,随着1.10版的推出,这种尴尬的局面也彻底终结了。

docker服务端是否一定需要以root用户运行?_docker必须root启动么(1) 最全的Linux教程,Linux从入门到精通第一份《Linux从入门到精通》466页内容简介====本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。 阅读详情

相关推荐

【Docker容器】Docker容器中的权限管理

【Docker容器】Docker容器中的权限管理

jks212454的博客 1992

设置非root用户操作使用docker

本文详细介绍了如何设置非root用户如何使用docker的问题

redrose2100的博客 4819

sap 标准委外和工序委外_SAP PP 工序委外详解

在SAP里有外包和外协两种:外包:指把原材料发出去,扣减库存,然后供应商加工生产,最后再作为成品入库。主要是在MM模块下实现的。对应的英语叫Subcontracting。外协:一般是指某种工序外协,在工艺路线里设置某个工序为外协后,系统自动会产生一个采购订单,一般是指采购某种服务。采购回来后再继续本公司的其他工序。主要是在PP模块下实现的。对应的英语叫Processing。2.当有委外加工的业务流...

weixin_26849971的博客 4581

docker运行需要管理员权限【笔记】

sudo chmod 666 /var/run/docker.sock

云灬沙的Blog 2245

ROS2与Gazebo协同实现多机器人避障仿真

本文详细介绍了如何利用ROS2与Gazebo协同搭建多机器人避障仿真环境。通过创建SDF机器人模型、编写多机器人启动文件以及集成基础避障算法,构建了一个低成本、高效率的虚拟测试平台,为AGV编队、机器人集群等项目的算法验证与迭代提供了完整解决方案。

weixin_29065659的博客 299

HyperLynx VX2.5 实战:5分钟搞定LPDDR4X内存的批量仿真与报告分析

本文详细介绍了如何使用HyperLynx VX2.5进行LPDDR4X内存的批量仿真与报告分析,通过智能网络分组和并行计算技术,5分钟内即可完成全流程验证。文章涵盖工程准备、批量仿真配置、报告解析及典型问题解决方案,帮助工程师高效提升PCB仿真效率,确保移动设备内存接口的稳定性与性能。

weixin_42683394的博客 402

Docker用户身份登录和管理员权限

Docker用户登录和管理员权限以非root用户启动容器为什么要用非root用户启动容器怎么以非root用户启动容器。如何以非root身份启动容器,但是能在容器中获得root权限。 更多docker的相关命令请戳我的个人网站:https://www.yolomax.com/lab/skills/docker/ 以非root用户启动容器 为什么要用非root用户启动容器 默认情况下,容器中的进程以 root 用户权限运行,并且这个 root 用户和宿主机中的 root 是同一个用户。所以大家直接启动容器,

bibodida的博客 7182

Arduino程序设计(八)LCD显示实验

本文主要介绍温度/温湿度传感器的LCD显示实验,分别是:1、LM35采集环境温度LCD显示;2、DS18B20采集环境温度LCD显示;3、DHT11采集环境温湿度LCD显示。(1)LM35介绍LM35特性特性说明基本功能LM35作为常用的温度传感器,可以检测周围的温度工作原理利用感温材料,通过内部电路将温度值转化为对应的电压信号工作电压4~30V,常用5V供电温度测量测量范围0~100℃ ,误差 ±0.5℃输出信号线性模拟信号输出,LM35输出电压和摄氏温度程线性关系。

Alice的博客 6712

docker爬坑指南 && ubuntu入门

在学习黑马程序员的docker课程中遇到的一些小问题,记录下来。

private_Jack的博客 622

基于PYNQ-Z2复现yolov2

基于PYNQ-Z2复现Yolo_v2 参考资料:源项目工程 开发板配置 0 使用说明 0.1 简介 本文档主要分为三个部分: [1] 搭建HLS工程生成Yolo_v2的IP。 [2] 在Vivado中使用生成好的IP进行block design,导出bit文件和tcl文件。 [3] 将相关文件导入至PYNQ-Z2板中,在Jupyter Notebook上进行编程实现。 0.2 所需硬件  PYNQ-Z2开发板、USB数据线、网线  SD卡、读卡器 0.3 所需软件  Vivado 2018.3  V

谦豫 1万+

影刀RPA:轻松搞定Excel表格自动化操作

影刀RPA是一款功能强大的自动化工具,通过模拟人类操作实现各种重复性任务的自动化。零代码操作:通过拖拽式流程设计器,无需编程基础即可快速上手。功能丰富:提供丰富的组件库,涵盖文件操作、数据处理等多种功能。高效稳定:支持多任务并行,确保任务的高效执行和稳定性。支持Python语法:内置数据表格,支持Python语法,对新手友好,同时具备循环功能。通过影刀RPA,您可以轻松实现Excel表格的拆分、列数据合并和归档工作的自动化。这不仅节省了手动操作的时间,还能确保数据处理的高效和准确,提升工作效率和管理水平。

watwrmoon的博客 2561

如何运行没有Root权限的Docker?干货来了!

作者 |Vaibhav Raizada译者 | 天道酬勤责编 | 徐威龙封图|优快云 下载于视觉中国在本文中,我们讨论了如何在没有root权限的情...

优快云云计算 4639

视源CVTE嵌入式面试题及参考答案(200+面试题,17万字)

内核模块如何设置? 内核模块是可在运行时动态加载到内核或从内核卸载的代码块。以下是设置内核模块的步骤: 首先,编写内核模块代码。通常使用 C 语言编写,包含必要的头文件,如<linux/init.h>、<linux/module.h>等。在代码中,需要定义模块的初始化函数和清理函数。初始化函数在模块加载时被调用,用于进行模块的初始化工作,如注册设备、分配资源等。清理函数在模块卸载时被调用,用于释放资源、注销设备等。 例如: #include <li

大模型大数据攻城狮的专栏 2205

非 root 用户运行 Docker 容器和同步主机和容器权限

Docker 已成为开发者在可移植、一致的环境中创建、部署和运行应用程序的热门平台。默认情况下,Docker 容器以 root 用户身份运行,如果容器受到攻击,这可能会带来安全风险。此外,在主机和 Docker 容器之间共享文件夹时,以 root 用户身份运行可能会出现问题。为了降低这些风险,我们将讨论如何使用自定义非 root 用户身份运行 Docker 容器,该用户身份与主机 Linux 用户的用户 ID (UID) 和组 ID (GID) 匹配,以确保已挂载文件夹的无缝权限处理。

计算机视觉领域 1459

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Docker 容器默认root账号运行

默认情况下,容器中的进程以 root 用户权限运行,并且这个 root 用户和宿主机中的 root 是同一个用户。听起来是不是很可怕,因为这就意味着一旦容器中的进程有了适当的机会,它就可以控制宿主机上的一切!本文我们将尝试了解用户名、组名、用户 id(uid)和组 id(gid)如何在容器内的进程和主机系统之间映射,这对于系统的安全来说是非常重要的。 说明:本文的演示环境为 ubuntu 16.04 (下图来自互联网)。 先来了解下uid和gid uid 和 gid 由 Linux 内核...

liujiaping的专栏 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

设置非root账号不用sudo直接执行docker命令

常用操作备忘

程序员欣宸的博客 4万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【docker系列】使用非root用户安装及启动docker(rootless模式运行)

字母哥只出精品原创,使用非root用户安装及启动docker(rootless模式运行)

字母哥博客 3万+

揭秘Docker容器权限漏洞:5个步骤实现非root安全运行

掌握Docker容器安全核心技巧,实现用户权限非root运行。通过创建专用用户、修改镜像配置等5个步骤,有效防范权限滥用风险,适用于生产环境部署。提升容器安全性,值得收藏。

CodeNexus的博客 1230

Docker root用户运行容器与非root用户运行容器的差异和注意事项(root容器、root用户容器)(特权端口)

root 用户运行容器:非 root 用户运行容器:root 用户:非 root 用户:root 用户:非 root 用户:root 用户:非 root 用户:root 用户:非 root 用户:root 用户:非 root 用户:root 用户:非 root 用户:root 用户:非 root 用户:root 用户:非 root 用户:root 用户:非 root 用户:root 用户:非 root 用户:开发和测试:生产环境:CI/CD 管道:特权操作:文件权限管理:用户命名空间:最小化镜像:安全扫描:

Dontla的博客 2473

如何以非root用户运行Docker容器

原文发表于kubernetes中文社区,为作者原创 原文地址 需要用root用户运行Docker? 组织中,经常以Root用户运行Docker中的容器。但是你的工作负载真的需要root权限吗?显然很少。尽管如此,默认情况下,你的容器仍将以root用户身份运行。但这可能会带来严重的安全问题。实际上,如果以root用户运行容器内部的进程,就是以root用户身份运行主机的进程。这就为那些恶意访问主...

琦彦 1万+

docker不用root权限也能执行-普通用户的权限设置

背景 最近,有些项目是基于docker写的。但是docker是需要root权限的,如果没有root权限的普通用户将没有办法操作docker。下面给出两个修改的方法,来完成普通用户的操作的请求。 解决办法 1. 赋予普通用户root权限 需要修改:/etc/sudoers # 现在是不可更改的,需要调整权限:chmod 0755 sudoers (需要root权限的) root@SRV252:/etc# ll sudoers -r--r----- 1 root root 815 Feb 23 13:06

XIAOFEI@IDO 1万+

【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解

【Docker】Docker的工具实践及root概念和Docker容器安全性设置、时间戳概念、安全性的详细讲解

m0_75058342的博客 5220

非root运行docker容器

1、自己的容器,可以在dockerfile中处理一下2、第三方镜像,

ggaofengg的专栏 1921
上一篇: Docker的优势
下一篇: 使用Docker容器不能忽略的10件事
ghostcloud精灵云
博客等级 码龄11年 81粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值