nginx proxy manager
该项目以预构建的 Docker 镜像形式提供,让你可以轻松转发到家中或其他环境中运行的网站,包括免费 SSL,无需对 Nginx 或 Letsencrypt 了解过多。
创建网络
创建自定义桥接网络,让容器实现通过容器名互相通信;并且添加父接口,实现容器访问宿主机。
输入命令ifconfig查找宿主机网卡名称
# 创建绑定到宿主机 eth1 网卡的自定义桥接网络
docker network create \
--driver bridge \ # 桥接驱动(默认)
--opt parent=eth1 \ # 指定父接口为宿主机的 eth1(根据实际网卡名修改)
--subnet 172.21.0.0/16 \ # 自定义子网(可选,建议指定避免冲突)
--gateway 172.21.0.1 \ # 自定义网关(可选)
my_bridge_with_parent # 自定义网络名称(根据自己需要修改,如npm)docker compose
创建一个类似这样的docker-compose.yml文件
汉化版
###########################################################################
# Docker Compose 配置 - Nginx Proxy Manager(汉化版)
# 核心功能:可视化管理反向代理、SSL证书自动续签、域名转发
# 适配环境:通用 Linux Docker / 群晖 Docker
###########################################################################
# ===================== 基础配置 =====================
# 指定 Docker Compose 文件版本(3.x 版本兼容主流 Docker 引擎)
version: '3'
# ===================== 服务定义 =====================
services:
# 服务名称:npm(Nginx Proxy Manager 缩写,可自定义)
npm:
# 网络配置:接入提前创建的外部自定义桥接网络(带父接口)
# 注:该网络需提前通过 docker network create my_bridge_with_parent 创建
networks:
# 网络名称:my_bridge_with_parent(根据自己需要修改,如npm)
my_bridge_with_parent:
# 镜像配置:使用汉化版 NPM 镜像(release 稳定版)
image: 'chishin/nginx-proxy-manager-zh:release'
# 重启策略:始终重启(容器退出/宿主机重启后自动恢复服务)
restart: always
# 容器名称:自定义为 npm(方便管理,如 docker stop/start npm)
container_name: npm
# ===================== 端口映射 =====================
ports:
# HTTP 端口(注释状态):宿主机9080映射容器80(外网HTTP请求转发)
# 因使用自定义网络,暂不暴露,如需直连可取消注释
# - '9080:80'
# 管理后台端口(注释状态):宿主机9081映射容器81(浏览器访问管理界面)
# - '9081:81'
# HTTPS 端口:宿主机9443映射容器443(外网HTTPS请求转发,核心端口)
- '9443:443'
# ===================== 数据卷挂载 =====================
volumes:
# 配置目录:持久化 NPM 核心配置(反向代理规则、用户设置等)
- ./config:/app/config
# 数据目录:存储面板运行日志、数据库等核心数据
- ./data:/data
# 证书目录:存储 Let's Encrypt 自动申请/续签的 SSL 证书
- ./letsencrypt:/etc/letsencrypt
# ===================== 网络配置 =====================
networks:
# 网络名称:my_bridge_with_parent(根据自己需要修改,如npm)
my_bridge_with_parent:
# 声明为外部网络(Docker 不会自动创建,需手动提前创建)
external: true官方版
# 声明 Docker Compose 文件版本(建议补充,确保兼容性)
version: '3'
# 定义 Docker Compose 服务集合
services:
# 服务名称:app(可自定义,如 nginx-proxy-manager)
app:
# 接入自定义网络(带父接口的桥接网络)
networks:
# 网络名称:my_bridge_with_parent(根据自己需要修改,如npm)
my_bridge_with_parent:
# 指定使用的镜像:jc21/nginx-proxy-manager 最新版本
image: 'jc21/nginx-proxy-manager:latest'
# 重启策略:除非手动停止,否则容器退出时自动重启(保障服务可用性)
restart: unless-stopped
# 环境变量配置
environment:
# 设置容器的时区为上海(可根据实际需求修改)
TZ: "Asia/Shanghai"
# 端口映射:宿主机端口:容器内端口(NPM 核心端口)
ports:
# 映射 80 端口(HTTP 访问端口,用于接收外网 HTTP 请求并转发)
- '80:80'
# 映射 81 端口(NPM 管理后台端口,用于浏览器访问管理界面)
- '81:81'
# 映射 443 端口(HTTPS 访问端口,用于接收外网 HTTPS 请求并转发)
- '443:443'
# 数据卷挂载:宿主机目录:容器内目录(持久化数据,防止容器删除后数据丢失)
volumes:
# 挂载 NPM 核心数据目录(存储配置、日志、数据库等)
- ./data:/data
# 挂载 Let's Encrypt 证书目录(存储自动申请/续签的 SSL 证书)
- ./letsencrypt:/etc/letsencrypt
# ===================== 自定义网络配置 =====================
networks:
# 网络名称:my_bridge_with_parent(根据自己需要修改,如npm)
my_bridge_with_parent:
# 声明为外部网络(需提前手动创建,Docker 不会自动生成)
external: true运行docker compose
docker compose up -d登录管理员界面
当你的 Docker 容器运行时,打开浏览,把下面的127.0.0.1 替换成你机器的ip ,81端口替换成你之前设置的端口
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 贫僧只偷少女心
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果