如何正确编写Dockerfile,并在主机非root用户/ uid下使用docker-compose(为了最佳实践)?

时间:2018-03-25 01:55:09

标签: security docker

我不太确定如何在使用docker时应用安全性最佳实践。每个受欢迎的指南似乎都在使用root。

任何人都可以共享一个示例/锅点 1.如何编写Dockerfile(对于非root用户),例如busybox的
2,在docker-compose文件中使用Dockerfile 3.使用非root用户/ uid运行docker-compose

我真的很感激。谢谢。

1 个答案:

答案 0 :(得分:1)

有一些不同的方法来实现这一目标。

在Dockerfile中,创建用户并以该用户身份运行应用程序。

这是首选模式。

FROM <BASE>
RUN groupadd -g 1000 myuser && \
    useradd -r -u 1000 -g myuser myuser
USER myuser
...

运行容器时,请指定其用户

有时您需要运行从Docker Hub中提取的图像。此图片可能不符合上述模式,只能以root运行。

您可以在运行时指定其用户。

docker run --user <uid>:<pid> ...

文档:https://docs.docker.com/engine/reference/run/#user

使用userns-remap

此处讨论了此模式的详细信息:https://docs.docker.com/engine/security/userns-remap/