首页 > 解决方案 > Docker:如何在容器中禁用 root 用户?

问题描述

将图像交付给他们通常制作的客户

$ docker-compose up -d

在生产中部署这些。很容易获得 root 并且很容易查看/修改所有文件:

$ docker-compose exec <service> /bin/sh
/bin/sh(root)# ...

如何避免客户在运行容器时以 root 身份获得对所有文件的完全访问权限。也许这在 Docker 中根本不可能,但是对于用户来说,至少应该更复杂地获得对容器内任何内容的完全访问权限。

是否有在容器中引入非 root 帐户的最佳实践?

标签: dockerdocker-composeroot

解决方案


你不能。你可以随时运行

docker exec -u 0 (container ID) sh

获得一个根外壳。(假设图像有一个外壳,但几乎所有的都有。)

还请记住,任何可以运行任何docker命令的人都可以编辑主机上的任何文件,并且可以从那里轻松成为 root,并且可以/var/lib/docker按自己的意愿进行刺激。

通常认为将容器设置为以非 root 身份运行是一种很好的做法,方法RUN adduser是使用基本发行版的工具和 DockerfileUSER指令创建用户,但如果操作员真的愿意,他们可以在运行时覆盖它。


推荐阅读