将图像交付给他们通常的客户
$ docker-compose up -d
部署生产环境中的产品。植根并轻松查看/修改所有文件很容易:
$ docker-compose exec <service> /bin/sh
/bin/sh(root)# ...
如何避免客户在运行容器时以root用户身份获得对所有文件的完全访问权限。也许这在Docker中根本不可能,但是对于用户来说,要完全访问容器中的任何内容,至少应该更为复杂。
是否有最佳做法来对容器中的非root帐户进行插入?
答案 0 :(得分:2)
您不能。您可以随时运行
docker exec -u 0 (container ID) sh
获得一个root shell。 (假设图像具有外壳,但几乎所有外壳都有。)
还请记住,任何可以运行任何docker
命令的人都可以编辑主机上的任何文件,并且可以从那里琐碎地成为root,并且可以在/var/lib/docker
中进行操作以达到他们内心的目的。>
通常认为,RUN adduser
将容器设置为以非超级用户身份运行,以使用基本发行版的工具,然后使用Dockerfile USER
指令创建用户,但是操作员可以在以下位置覆盖它:如果他们真的愿意的话。