这篇文章主要介绍了Docker运行时的用户与组如何管理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker运行时的用户与组如何管理文章都会有所收获,下面我们一起来看看吧。docker 以进程为核心, 对系统资源进行隔离使用的管理工具. 隔离是通过 cgroups (control groups 进程控制组)免费云主机域名 这个操作系统内核特性来实现的. 包括用户的参数限制、 帐户管理、 资源(cpu,内存,磁盘i/o,网络)使用的隔离等. docker 在运行时可以为容器内进程指定用户和组. 没有指定时默认是 root .但因为隔离的原因, 并不会因此丧失安全性. 传统上, 特定的应用都以特定的用户来运行, 在容器内进程指定运行程序的所属用户或组并不需要在 host 中事先创建.进程控制组cgroups主要可能做以下几件事:资源限制 组可以设置为不超过配置的内存限制, 其中还包括文件系统缓存优先级 某些组可能会获得更大的 cpu 利用率份额或磁盘 i/o 吞吐量帐号会计 度量组的资源使用情况, 例如, 用于计费的目的控制 冻结组进程, 设置进程的检查点和重新启动与 cgroups(控制进程组) 相关联的概念是 namespaces (命令空间).
命名空间主要有六种名称隔离类型:pid 命名空间为进程标识符 (pids) 的分配、进程列表及其详细信息提供了隔离。
虽然新命名空间与其他同级对象隔离, 但其 “父 ” 命名空间中的进程仍会看到子命名空间中的所有进程 (尽管具有不同的 pid 编号)。网络命名空间隔离网络接口控制器 (物理或虚拟)、iptables 防火墙规则、路由表等。网络命名空间可以使用 “veth ” 虚拟以太网设备彼此连接。uts 命名空间允许更改主机名。mount(装载)命名空间允许创建不同的文件系统布局, 或使某些装入点为只读。ipc 命名空间将 system v 的进程间通信通过命名空间隔离开来。用户命名空间将用户 id 通过命名空间隔离开来。普通用户 docker run 容器内 root
如 busybox, 可以在 docker 容器中以 root 身份运行软件. 但 docker 容器本身仍以普通用户执行.
考虑这样的情况前面的是当前用户当前系统进程,后面的转入容器内用户和容器内进程运行.当在容器内 pid 以1运行时, linux 会忽略信号系统的默认行为, 进程收到 sigint 或 sigterm 信号时不会退出, 除非你的进程为此编码. 可以通过 dockerfile stopsignal signal指定停止信号.
如:创建一个 dockerfile普通用户 docker run 容器内指定不同用户 demo_user
这里的 demo_user 和 group1(主组), group2(副组) 不是主机的用户和组, 而是创建容器镜像时创建的.
当dockerfile里没有通过user指令指定运行用户时, 容器会以 root 用户运行进程.docker 指定用户的方式dockerfile 中指定用户运行特定的命令
docker run -u(–user)[user:group] 或 –group-add 参数方式
docker 容器内用户的权限
对比以下情况, host 中普通用户创建的文件, 到 docker 容器下映射成了 root 用户属主:而在容器内卷目录中创建的文件, 则对应 host 当前执行 docker 的用户:docker volume 文件访问权限
创建和使用卷, docker 不支持相对路径的挂载点, 多个容器可以同时使用同一个卷.外部创建文件, 容器内指定用户去删除实际是可以删除的docker 普通用户的1024以下端口权限
关于“Docker运行时的用户与组如何管理”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Docker运行时的用户与组如何管理”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。
小编给大家分享一下jQuery如何通过IP地址获得地理位置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅免费云主机域名读完这篇文章后大有收获,下面让我们一起去了解一下吧!通过IP地址获得地理位置有很多在线服务可以告诉我们IP地址所在的…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。