skip to content
Nginx Proxy Manager with Docker Compose
/ 3 min read
Updated:
Table of Contents
curl -fsSL https://get.docker.com | sh
apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
"fixed-cidr-v6": "fd00::/64",
sudo systemctl restart docker
--subnet=fd00:1a2b::/64 \
docker network inspect npm_public
# 🌟 创建独立的生产环境内部网络,实现容器间安全隔离
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
- '80:80' # HTTP 流量入口(公网开放)
- '443:443' # HTTPS 流量入口(公网开放)
- '127.0.0.1:81:81' # 🌟 核心安全:管理后台仅允许宿主机本地访问,外网无法肉身翻墙
- TZ=Asia/Shanghai # 🌟 强行同步时区,确保 SSL 证书申请日志、访问日志时间正确
# - DISABLE_IPV6=true # 如果你的环境完全不需要 IPv6,可以取消注释以禁用 NPM 内部的 IPv6 监听
- ./letsencrypt:/etc/letsencrypt
# 🌟 生产环境防御:限制日志文件大小,防止长年累月把宿主机硬盘撑爆
max-size: "200m" # 单个日志文件最大 200MB
max-file: "5" # 最多保留 5 个日志文件
# 让 NPM 内部的 Certbot 强制走 IPv4 域名解析
docker exec -it nginx-proxy-manager bash -c "sed -i 's/#precedence ::ffff:0:0\/96 100/precedence ::ffff:0:0\/96 100/' /etc/gai.conf"
docker exec -it nginx-proxy-manager curl -4 -I https://acme-v02.api.letsencrypt.org/directory
docker exec -it nginx-proxy-manager curl -6 -I https://acme-v02.api.letsencrypt.org/directory
docker exec -it nginx-proxy-manager curl -I https://acme-v02.api.letsencrypt.org/directory