之路 on it Road.com
方法 2 - 使用 Dockerfile(USER 指令)
Docker 提供了一个简单而强大的解决方案来将容器的权限更改为非 root 用户,从而阻止恶意 root 访问 Docker 主机。
可以使用 docker run 子命令的 -u 或者 -user 选项或者 Dockerfile 中的 USER 指令完成对非 root 用户的这种更改。
1、编辑创建非root权限用户的Dockerfile,将默认root用户修改为新创建的非root权限用户,如下图:
# Dockerfile to change from root to # non-root privilege# Base image is CentOS 7 FROM Centos:7 # Add a new user "john" with user id 8877 RUN useradd -u 8877 john # Change to non-root privilege USER john
- 继续使用“docker build”子命令构建 Docker 镜像,如下所示:
$ sudo docker build -t nonrootimage .
- 最后,让我们使用 docker run 子命令中的 id 命令验证容器的当前用户:
$ sudo docker run --rm nonrootimage id uid=8877(john) gid=8877(john) groups=8877(john)
现在,容器的用户、组已经更改为非 root 用户。
默认情况下,Docker 容器以 root 权限运行,在容器内运行的应用程序也是如此。
从安全角度来看,这是另一个主要问题,因为黑客可以通过入侵容器内运行的应用程序来获得对 Docker 主机的 root 访问权限。
方法 1 - 将用户添加到 Docker 组
要以非 root 用户身份运行 Docker,我们必须将用户添加到 docker 组。
如果没有,则创建一个docker组:
$ sudo groupadd docker
- 将用户添加到 docker 组:
$ sudo usermod -aG docker [non-root user]
- 注销并重新登录,以便重新评估组成员身份。
日期:2020-09-17 00:16:28 来源:oir作者:oir