由于使用ssh安装宝塔到系统底层,会占用80/443端口和系统产生冲突,所以我更喜欢使用docker部署,

可以使用bridge网络,把宝塔的80/443等端口映射到宿主机任意端口。

compose如下:

plaintext
services:
  btpanel:
    image: docker.cnb.cool/btpanel/btpanel:latest
    container_name: baota
    restart: always
    ports:
      - 38888:8888   # 宝塔面板对外访问端口
      - 38080:80      # Web服务端口
      - 38443:443     # HTTPS服务端口
      - 33306:3306   # MySQL服务端口,不需要暴露到容器外可删除
      - 32022:22     # SSH服务端口,不需要暴露到容器外可删除
      - 32888:888    # PHPMyAdmin服务端口,不需要暴露到容器外可删除
    volumes:
      - ./www:/www         # 持久化宝塔配置
      - /vol2/1000/web:/www/wwwroot        # 独立持久化网站数据

端口可以任意设置,

把整个www映射到本地做持久化,可以保留宝塔的环境,设置等

单独在把wwwroot映射出来,方便网站文件管理。

* 如果不把wwwroot映射出来,他是包含在www目录中的,不方便在nas上管理网站文件,把他写在下面,按compose的规则,他会覆盖上面设置的www


如果外网需要访问宝塔后台,及网站,只需要在路由上映射8888对应的端口和80端口,443按需。

3306 /22 /88这些管理面板可以直接在宝塔中打开,不需要单独在路由上映射。