Docker
如何允許 Docker 容器將特權埠綁定為另一個使用者?
我有一個
docker-compose.yaml
文件,我在其中覆蓋了用於使用user指令執行容器程序的使用者:version: "3.3" services: front: image: "ghcr.io/hexil-org/hexer-front:latest" restart: "unless-stopped" user: "1002:1002"
在容器中,需要在 port 上打開一個網路伺服器
80
,但是,這會失敗並出現以下錯誤:httpd: bind: Permission denied
據我了解,這失敗了,因為
80
它是一個特權埠,除了root
. 有沒有辦法讓 Docker 容器中的使用者打開埠80
?
您可以更改的值,
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
這將允許非特權程序綁定到所有低編號埠。