如何阻止无根Docker(Docker Rootless)默认占用8080端口
解决无根Docker(Rootless Docker)占用8080端口的问题
Rootless Docker 默认会通过 rootlesskit 监听8080端口,用于端口转发的API服务,直接杀死进程会导致它自动重启,得通过修改配置解决占用问题,以下是两种可行方案:
方案一:修改Rootless Docker的默认端口
- 找到Rootless Docker的配置目录,一般是
~/.config/docker/ - 创建或编辑
daemon.json文件,添加自定义端口配置(比如换成8081):{ "rootlesskit-port": 8081 } - 或者通过环境变量临时调整(仅当前会话生效):
export DOCKERD_ROOTLESS_ROOTLESSKIT_PORT=8081 - 重启Docker用户服务:
systemctl --user restart docker - 执行命令验证8080端口是否释放:
无输出则说明端口已释放,此时可以正常启动pgadmin容器。netstat -ltnp | grep -w ':8080'
方案二:修改pgadmin的端口映射
如果不想调整Docker配置,直接修改docker-compose.yml中的端口映射,把本地端口换成未被占用的(比如8082):
services: pgadmin: image: dpage/pgadmin4 environment: - PGADMIN_DEFAULT_EMAIL=admin@admin.com - PGADMIN_DEFAULT_PASSWORD=root volumes: - "./data_pgadmin:/var/lib/pgadmin:rw" ports: - "8082:80"
修改后重新启动容器:
docker-compose up -d
内容的提问来源于stack exchange,提问作者akooi
相关产品推荐
相关产品推荐

