0

我目前正在评估不同的选项来减小图像大小。除了 alpine 之外,还可以选择使用多阶段 docker 构建在暂存镜像中运行静态构建,大多数人称之为安全(我同意攻击面)。但是由于不涉及用户管理等,这是否意味着以与执行它的 docker 守护进程相同的权限运行二进制文件?这里的安全点在哪里?

4

1 回答 1

2

您仍然可以通过在 Dockerfile 中SCRATCH使用USER命令或在启动容器 ( --user=) 时为图像定义用户。最安全的选项将是USERDockerfile 中的命令指定的非 root 用户 - 这将是默认容器选项。如果容器需要 root 用户,那么你可以使用用户命名空间,所以容器中不会使用真正的 root。

顺便说一句:非 root 用户的典型问题是低端口绑定,但您可以绑定高端口或使用--cap-add net_bind_service/ --sysctl net.ipv4.ip_unprivileged_port_start=0(内核 4.11+)。

于 2019-02-11T17:19:45.973 回答