Docker: 如何在容器中禁用root用户?

4

向客户交付图像通常是他们所做的事情。

$ docker-compose up -d

部署这些内容到生产环境中。很容易获取root权限并轻松查看/修改所有文件:

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

当运行容器时,我如何避免客户作为root用户获得对所有文件的完全访问权限。也许在Docker中根本不可能做到这一点,但至少应该让用户更难以访问容器内部的任何内容。

有没有最佳实践来引入非root帐户到容器中?

1个回答

4
你无法这样做。你总是可以运行。
docker exec -u 0 (container ID) sh

获得root Shell。(假设镜像有Shell,但几乎所有镜像都有)

还要记住,任何能运行docker命令的人都可以编辑主机上的任何文件,并且从那里可以轻松地成为root,并且可以在/var/lib/docker中探查到他们想要的内容。

通常认为将容器设置为以非root用户运行是最佳实践,可通过RUN adduser使用基本发行版工具创建用户,然后使用Dockerfile USER指令,但如果操作员确实希望这样做,可以在运行时覆盖此设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接