docker - Docker:如何在容器中禁用 root 用户?
问题描述
将图像交付给他们通常制作的客户
$ docker-compose up -d
在生产中部署这些。很容易获得 root 并且很容易查看/修改所有文件:
$ docker-compose exec <service> /bin/sh
/bin/sh(root)# ...
如何避免客户在运行容器时以 root 身份获得对所有文件的完全访问权限。也许这在 Docker 中根本不可能,但是对于用户来说,至少应该更复杂地获得对容器内任何内容的完全访问权限。
是否有在容器中引入非 root 帐户的最佳实践?
解决方案
你不能。你可以随时运行
docker exec -u 0 (container ID) sh
获得一个根外壳。(假设图像有一个外壳,但几乎所有的都有。)
还请记住,任何可以运行任何docker
命令的人都可以编辑主机上的任何文件,并且可以从那里轻松成为 root,并且可以/var/lib/docker
按自己的意愿进行刺激。
通常认为将容器设置为以非 root 身份运行是一种很好的做法,方法RUN adduser
是使用基本发行版的工具和 DockerfileUSER
指令创建用户,但如果操作员真的愿意,他们可以在运行时覆盖它。
推荐阅读
- python - socket.gaierror:[错误-2]名称或服务未知
- android - 如何从 SQLite,Android 中的表中删除所有项目?
- android - 检索科尔多瓦上下文导致:'错误:找不到符号变量科尔多瓦'
- python - python变量解包失败
- sql - Oracle ORA-01722:无效数字错误,因为 WHERE IS NULL 条件
- html - Bootstrap Jumbotron 背景图像不起作用
- asp.net-mvc - VS 2017 上 ASP.NET Core 的重构功能对我来说效果不佳……我做错了什么吗?
- android - Android 是否支持 Qt QSharedMemory?
- vba - VBA中如何动态设置表单控件的事件处理程序?
- c++ - 从 EEPROM 读取字符串时,ArduinoJson 解析失败