在 Docker Alpine 映像中创建映像大小较小的非根用户



我正在使用 docker 节点node:alpine来构建容器,但我想以非 root 用户身份启动我的节点应用程序。与以 root 用户身份运行时相比,仅使用 adduseraddgroup 添加用户和组会使映像大小增加 300MB。

使用来自 alpine 测试存储库的shadow也可以执行相同的操作(即将我的图像大小增加 300MB(。运行回声 http://nl.alpinelinux.org/alpine/edge/testing>>/etc/apk/repository

任何工具或任何建议如何创建非root用户,而不会大大增加图像的大小?

一种解决方案是将存储驱动程序从 aufs 切换到设备映射器,如此处所述。

或者,另一种解决方案是直接从主机复制资源,并在同一COPY指令中设置所有者

COPY [--chown=<user>:<group>] <src>... <dest>

既然我不能发表评论,请一定忽略谢尔盖·雅罗茨基的回答。这是一个危险的误导性答案,这也是错误的。

例如,请阅读 https://medium.com/@mccode/processes-in-containers-should-not-run-as-root-2feae3f0df3b 为什么除非你真的明确需要,否则你永远不应该在容器中以root身份运行。

但是,您可以使用 docker run -u 运行容器来手动指定用户。

相关内容

最新更新