假设我有这个Dockerfile。
以非特权用户身份在端口80上运行它的最佳方法是什么?(没有在前面添加网络服务器)?
我试图进行以下设置:如何在端口80上运行Node.js? 但是我不走运,我想我对这个工作原理不甚了解。
您是否认为有解决此问题的优雅解决方案?我对此表示怀疑,但充满希望:)
根据此站点https://wiki.apache.org/httpd/NonRootPortBinding “setcap”设置在内核级别使用端口 80 的权限。容器在主机内核内的命名空间内运行。因此,您的教程仅适用于虚拟机和专用服务器。在主机内核内的特权级别上运行 docker 容器可能会取得更大的成功:
$ docker run --privileged=true ...
Run Code Online (Sandbox Code Playgroud)
否则,您将不得不避免使用特权端口(< 1024)。“Docker 方式”通常是避免使用特权容器并仅依赖端口映射。
根据此票证:https://github.com/docker/docker/issues/5650 setcap 通常应该与 docker 容器一起使用,但如果您使用 AUFS 文件系统驱动程序,则会失败。该票证是 2014 年的,因此这可能适用于最新的 AUFS 实施。
| 归档时间: |
|
| 查看次数: |
2965 次 |
| 最近记录: |