1. 创建外部网络

在终端执行以下命令,手动创建名为web-proxy的外部网络:

docker network create web_proxy

[!TIP] 💡 防止误删

  • 使用 docker-compose down 删除容器时,Compose 自动创建的网络会一并被删除。
  • 如果将网络设置为 external,则该网络会被保留,即使容器重建也不会影响网络的存在。
  • 这样可以保证其他依赖该网络的容器不会因为 NPM(Nginx Proxy Manager)的重启而断网。

2. docker-compose配置文件

创建docker-compose.yaml,内容如下:

services:
  npm:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: npm
    restart: always
    ports:
      - '80:80'      # 必须保留,用于证书验证和博客访问
      - '443:443'    # 必须保留,用于 HTTPS 博客访问
      - '11181:81'   # 将管理界面隐藏在非标端口
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      - web_proxy

networks:
  web_proxy:
    external: true

[!TIP] 💡 参数说明

  • 端口说明:

    • 80:80:用于证书验证和博客访问(必须保留)
    • 443:443:用于 HTTPS 访问(必须保留)
    • 11181:81:将管理界面隐藏在非标准端口,提高安全性
  • 数据持久化:

    • 通过 volumes 挂载数据和证书目录,确保数据不丢失
  • 网络配置:

    • networks.web_proxy.external: true 指定使用外部网络,防止网络在容器删除时被误删

标签: docker, 部署, 脚本, npm, 反向代理, 容器部署, nginx

添加新评论