62·安全进阶

非 root 运行

非 root 运行

为什么不用 root

容器以 root 运行 → 容器逃逸 = 宿主机 root 权限

Dockerfile 设置

FROM node:18
RUN groupadd -r app && useradd -r -g app app
WORKDIR /app
COPY --chown=app:app . .
USER app
CMD ["node", "server.js"]

运行时指定

# 用 -u 指定用户
docker run -u 1000:1000 my-app

# 用用户名
docker run -u app my-app

检查

# 查看容器运行用户
docker exec my-app whoami
docker exec my-app id

小结

方法说明
USERDockerfile 中设置
-u运行时指定
最佳实践应用不用 root

练习编辑器

bash
Loading...