Docker   发布时间:2019-11-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了理解 docker 容器中的 uid 和 gid大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

是非常重要的。说明:本文的演示环境为 ubuntu 16.04(下图来自互联网)。

title="理解 docker 容器中的 uid 和 gid" alt="理解 docker 容器中的 uid 和 gid" src="https://cn.js-code.com/res/2019/02-09/09/6e8489e3b2c7e8a4a3119cc158a66a57.png" >

内核使用的是 uid 和 gid,而不是用户名和组名。

虽然这简化了理解容器技术的难度但是也容易带来很多的误解。事实上,与虚拟机技术不同:同一主机上运行的所有容器共享同一个内核(主机的内核)。容器化带来的巨大价值在于所有这些独立的容器(其实是进程)可以共享一个内核。这意味着即使由成百上千的容器运行在 docker 宿主机上,但内核控制的 uid 和 gid 则仍然只有一套。所以同一个 uid 在宿主机和容器中代表的是同一个用户(即便在不同的地方显示了不同的用户名)。

考《》,你需要注意的是到目前为止,docker 默认并没有启用 user namesapce,这也是本文讨论的情况。笔者会在接下来的文章中介绍如何配置 docker 启用 user namespace。

$ docker run -d --name sleepme ubuntu infinity

理解 docker 容器中的 uid 和 gid

$ aux |

理解 docker 容器中的 uid 和 gid

理解 docker 容器中的 uid 和 gid

容器内的 root 用户和宿主机上的 root 用户是同一个吗?

理解 docker 容器中的 uid 和 gid

$ docker run -- -it -=/testv -v $()/testv:/testv ubuntu

理解 docker 容器中的 uid 和 gid

-r -u -,]

$ docker build -t test .

理解 docker 容器中的 uid 和 gid

$ docker run -d --name sleepme test

理解 docker 容器中的 uid 和 gid

$ docker exec -it sleepme bash

理解 docker 容器中的 uid 和 gid

理解 docker 容器中的 uid 和 gid

$ docker run -d --name sleepme -=/testv -v $()/testv:/testv test

理解 docker 容器中的 uid 和 gid

在容器中 testfile 的所有者居然变成了 appuser,当然 appuser 也就有权限读写该文件。

$ docker run -d --user --name sleepme ubuntu infinity

理解 docker 容器中的 uid 和 gid

$ docker exec -it sleepme bash

理解 docker 容器中的 uid 和 gid

理解 docker 容器中的 uid 和 gid

$ docker run -d test

理解 docker 容器中的 uid 和 gid

$ docker run --user -d test

理解 docker 容器中的 uid 和 gid

大佬总结

以上是大佬教程为你收集整理的理解 docker 容器中的 uid 和 gid全部内容,希望文章能够帮你解决理解 docker 容器中的 uid 和 gid所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: