Docker:如何在conatiner中禁用root用户?

时间:2019-01-24 17:39:37

标签: docker docker-compose root

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

$ docker-compose up -d

部署生产环境中的产品。植根并轻松查看/修改所有文件很容易:

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

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

是否有最佳做法来对容器中的非root帐户进行插入?

1 个答案:

答案 0 :(得分:2)

您不能。您可以随时运行

docker exec -u 0 (container ID) sh

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

还请记住,任何可以运行任何docker命令的人都可以编辑主机上的任何文件,并且可以从那里琐碎地成为root,并且可以在/var/lib/docker中进行操作以达到他们内心的目的。

通常认为,RUN adduser将容器设置为以非超级用户身份运行,以使用基本发行版的工具,然后使用Dockerfile USER指令创建用户,但是操作员可以在以下位置覆盖它:如果他们真的愿意的话。