我有一个docker-compose.yaml
文件,我使用以下命令覆盖用于运行容器进程的用户用户指示:
version: "3.3"
services:
front:
image: "ghcr.io/hexil-org/hexer-front:latest"
restart: "unless-stopped"
user: "1002:1002"
在容器中,需要在端口上打开一个 Web 服务器80
,但是,此操作失败并出现以下错误:
httpd: bind: Permission denied
据我了解,此操作会失败,因为80
是一个特权端口,除 之外的用户无法打开root
。 有什么方法可以让 Docker 容器中的用户打开端口80
?
答案1
您可以更改的值,net.ipv4.ip_unprivileged_port_start
sysctl
以便容器用户能够绑定端口 80。您可以docker-compose.yml
像这样修改文件:
version: "3.3"
services:
front:
image: "ghcr.io/hexil-org/hexer-front:latest"
restart: "unless-stopped"
user: "1002:1002"
sysctl:
net.ipv4.ip_unprivileged_port_start: 0
这将允许非特权进程绑定到所有低编号端口。