如何让Docker容器使用80以外的端口?自托管Bitwarden部署端口冲突咨询
问题原因
你只修改了Bitwarden主Web服务的端口映射,没有调整内置Certbot证书申请容器的默认端口绑定,该容器默认需要占用宿主机80端口完成HTTP01证书挑战,所以即使修改了Web服务端口仍然会报80端口占用错误。
另外如果直接修改临时生成的docker-compose.yml文件,运行官方脚本时配置会被默认覆盖,不会永久生效。
推荐解决方案(不影响现有Nginx站点)
- 先停止所有Bitwarden相关容器:
./bitwarden.sh stop - 进入Bitwarden安装目录,打开
bwdata/config.yml文件,修改以下配置项:http_port改为你需要的宿主机端口,比如5000https_port改为比如5001ssl设置为false,关闭内置SSL功能generate_ssl_certs设置为false,关闭内置Certbot自动申请证书逻辑
- 重新生成Bitwarden的Docker配置:
./bitwarden.sh rebuild - 启动Bitwarden服务:
./bitwarden.sh start - 到现有Nginx中添加Bitwarden站点配置,反向代理到本地
127.0.0.1:5000,使用你自行申请的SSL证书即可正常访问。
其他可选方案
如果不需要自动续期证书,也可以直接在bwdata/docker/docker-compose.yml中注释掉整个certbot服务段,再启动服务就不会占用80端口。但该方式后续证书到期需要手动替换,维护成本更高。
内容的提问来源于stack exchange,提问作者PinPiguin
相关产品推荐
相关产品推荐

