[{"data":1,"prerenderedAt":1356},["ShallowReactive",2],{"article-\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F02.容器项目-传输类":3,"article-around-\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F02.容器项目-传输类":1138},{"id":4,"title":5,"author":6,"body":7,"category":1124,"cover":1125,"date":1126,"description":1127,"draft":1128,"extension":1129,"image":1130,"license":1125,"meta":1131,"minutes":82,"navigation":78,"path":1133,"pinned":1128,"seo":1134,"stem":1135,"tags":1136,"__hash__":1137},"blog\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F02.容器项目&传输类.md","容器项目&传输类","张萌萌",{"type":8,"value":9,"toc":1115},"minimark",[10,15,19,30,33,36,38,42,45,420,425,433,439,443,446,448,452,455,681,683,687,690,1111],[11,12,14],"h2",{"id":13},"序言-docker-compose-容器项目","序言 docker-compose 容器项目",[16,17,18],"p",{},"我先把我的 docker 树目录再放出来，方便你修改路径，如果和我一样的路径就不需要修改。",[20,21,27],"pre",{"className":22,"code":24,"language":25,"meta":26},[23],"language-text","root（根目录）\n├── docker（分支层级：docker目录）\n│   ├── apps（具体目录：docker app目录）\n│   │   ├── xunlei         # 存放迅雷配置\n│   │   └── qbittorrent    # 存放qb配置\n│   └── docker-compose（具体目录：docker-compose.yaml目录）\n│       ├── xunlei\n│       │   └── docker-compose.yaml\n│       └── qbittorrent\n│           └── docker-compose.yaml\n├── downloads（数据目录）\n│   ├── xunlei_downloads\n│   └── qb_downloads\n...\n\n","text","",[28,29,24],"code",{"__ignoreMap":26},[31,32],"hr",{},[16,34,35],{},"工欲善其事必先利其器，首先介绍的是常见的文件传输工具迅雷和 qBittorrent。",[31,37],{},[11,39,41],{"id":40},"_1-迅雷","1 迅雷",[16,43,44],{},"迅雷老生常谈的软件了，迅雷 docker 默认端口是 2345，你可以创建项目 xunlei 的 yaml 文件。上个文章我介绍了手动创建 yaml 文件，并且手动拉取镜像运行 docker 的过程。这次我就以迅雷这个为例，采用 dpanel 面板工具方式运行。",[20,46,50],{"className":47,"code":48,"language":49,"meta":26,"style":26},"language-yaml shiki shiki-themes github-light github-dark","# 官方文档\n# http:\u002F\u002Fhub.docker.com\u002Fcnk3x\u002Fxunlei\n# https:\u002F\u002Fgithub.com\u002Fcnk3x\u002Fxunlei\n\n# ---\n\nname: xunlei\n# 最后编辑时间：2025-02-18\nservices:\n  xunlei:\n    # 镜像地址，此为正式版，内置aria2\n    image: cnk3x\u002Fxunlei:latest\n    # 容器名\n    container_name: xunlei\n    # 主机名\n    hostname: xunlei\n    # 特权，赋予容器与主机几乎一致的权限，必须开启\n    privileged: true\n    # 路径\n    environment:\n      # 迅雷的用户、用户组权限\n      # 用户和用户组权限，ssh中使用“id 用户名”查看，用户组一般为100(users)\n      # 第一个用户而言，群晖为1026，新绿联为1001，linux类系统为1000，后续用户均+1\n      - XL_UID=1000\n      - XL_GID=100\n      # 默认创建新文件的权限，一般写022\n      - UMASK=022\n      # 时区\n      - TZ=Asia\u002FShanghai\n      # 自定义迅雷的容器端口，默认为2345\n      - XL_DASHBOARD_PORT=2345\n      # 设置迅雷WebUI的访问账号密码，可以不设，预设为xunlei\n      # - XL_DASHBOADR_USER=xunlei\n      # - XL_DASHBOADR_PASSWORD=xunlei\n    volumes:\n      # 配置文件目录\n      # - 左边是你本机路径 : 右边是容器路径\n      # 配置文件目录\n      - \u002Fdocker\u002Fapps\u002Fxunlei:\u002Fxunlei\u002Fdata\n      # 传输目录\n      - \u002Fxunlei_downloads:\u002Fxunlei\u002Fdownloads\n    # 网络模式：桥接模式\n    network_mode: bridge\n    # 端口\n    ports:\n      # 端口说明功能\n      # webUI端口\n      - 2345:2345\n    # 重启策略，总是重启\n    restart: always\n","yaml",[28,51,52,61,67,73,80,86,91,106,112,121,129,135,146,152,162,168,178,184,196,202,210,216,222,228,237,245,251,259,265,273,279,287,293,299,305,313,319,325,330,338,344,352,358,369,375,383,389,395,403,409],{"__ignoreMap":26},[53,54,57],"span",{"class":55,"line":56},"line",1,[53,58,60],{"class":59},"sJ8bj","# 官方文档\n",[53,62,64],{"class":55,"line":63},2,[53,65,66],{"class":59},"# http:\u002F\u002Fhub.docker.com\u002Fcnk3x\u002Fxunlei\n",[53,68,70],{"class":55,"line":69},3,[53,71,72],{"class":59},"# https:\u002F\u002Fgithub.com\u002Fcnk3x\u002Fxunlei\n",[53,74,76],{"class":55,"line":75},4,[53,77,79],{"emptyLinePlaceholder":78},true,"\n",[53,81,83],{"class":55,"line":82},5,[53,84,85],{"class":59},"# ---\n",[53,87,89],{"class":55,"line":88},6,[53,90,79],{"emptyLinePlaceholder":78},[53,92,94,98,102],{"class":55,"line":93},7,[53,95,97],{"class":96},"s9eBZ","name",[53,99,101],{"class":100},"sVt8B",": ",[53,103,105],{"class":104},"sZZnC","xunlei\n",[53,107,109],{"class":55,"line":108},8,[53,110,111],{"class":59},"# 最后编辑时间：2025-02-18\n",[53,113,115,118],{"class":55,"line":114},9,[53,116,117],{"class":96},"services",[53,119,120],{"class":100},":\n",[53,122,124,127],{"class":55,"line":123},10,[53,125,126],{"class":96},"  xunlei",[53,128,120],{"class":100},[53,130,132],{"class":55,"line":131},11,[53,133,134],{"class":59},"    # 镜像地址，此为正式版，内置aria2\n",[53,136,138,141,143],{"class":55,"line":137},12,[53,139,140],{"class":96},"    image",[53,142,101],{"class":100},[53,144,145],{"class":104},"cnk3x\u002Fxunlei:latest\n",[53,147,149],{"class":55,"line":148},13,[53,150,151],{"class":59},"    # 容器名\n",[53,153,155,158,160],{"class":55,"line":154},14,[53,156,157],{"class":96},"    container_name",[53,159,101],{"class":100},[53,161,105],{"class":104},[53,163,165],{"class":55,"line":164},15,[53,166,167],{"class":59},"    # 主机名\n",[53,169,171,174,176],{"class":55,"line":170},16,[53,172,173],{"class":96},"    hostname",[53,175,101],{"class":100},[53,177,105],{"class":104},[53,179,181],{"class":55,"line":180},17,[53,182,183],{"class":59},"    # 特权，赋予容器与主机几乎一致的权限，必须开启\n",[53,185,187,190,192],{"class":55,"line":186},18,[53,188,189],{"class":96},"    privileged",[53,191,101],{"class":100},[53,193,195],{"class":194},"sj4cs","true\n",[53,197,199],{"class":55,"line":198},19,[53,200,201],{"class":59},"    # 路径\n",[53,203,205,208],{"class":55,"line":204},20,[53,206,207],{"class":96},"    environment",[53,209,120],{"class":100},[53,211,213],{"class":55,"line":212},21,[53,214,215],{"class":59},"      # 迅雷的用户、用户组权限\n",[53,217,219],{"class":55,"line":218},22,[53,220,221],{"class":59},"      # 用户和用户组权限，ssh中使用“id 用户名”查看，用户组一般为100(users)\n",[53,223,225],{"class":55,"line":224},23,[53,226,227],{"class":59},"      # 第一个用户而言，群晖为1026，新绿联为1001，linux类系统为1000，后续用户均+1\n",[53,229,231,234],{"class":55,"line":230},24,[53,232,233],{"class":100},"      - ",[53,235,236],{"class":104},"XL_UID=1000\n",[53,238,240,242],{"class":55,"line":239},25,[53,241,233],{"class":100},[53,243,244],{"class":104},"XL_GID=100\n",[53,246,248],{"class":55,"line":247},26,[53,249,250],{"class":59},"      # 默认创建新文件的权限，一般写022\n",[53,252,254,256],{"class":55,"line":253},27,[53,255,233],{"class":100},[53,257,258],{"class":104},"UMASK=022\n",[53,260,262],{"class":55,"line":261},28,[53,263,264],{"class":59},"      # 时区\n",[53,266,268,270],{"class":55,"line":267},29,[53,269,233],{"class":100},[53,271,272],{"class":104},"TZ=Asia\u002FShanghai\n",[53,274,276],{"class":55,"line":275},30,[53,277,278],{"class":59},"      # 自定义迅雷的容器端口，默认为2345\n",[53,280,282,284],{"class":55,"line":281},31,[53,283,233],{"class":100},[53,285,286],{"class":104},"XL_DASHBOARD_PORT=2345\n",[53,288,290],{"class":55,"line":289},32,[53,291,292],{"class":59},"      # 设置迅雷WebUI的访问账号密码，可以不设，预设为xunlei\n",[53,294,296],{"class":55,"line":295},33,[53,297,298],{"class":59},"      # - XL_DASHBOADR_USER=xunlei\n",[53,300,302],{"class":55,"line":301},34,[53,303,304],{"class":59},"      # - XL_DASHBOADR_PASSWORD=xunlei\n",[53,306,308,311],{"class":55,"line":307},35,[53,309,310],{"class":96},"    volumes",[53,312,120],{"class":100},[53,314,316],{"class":55,"line":315},36,[53,317,318],{"class":59},"      # 配置文件目录\n",[53,320,322],{"class":55,"line":321},37,[53,323,324],{"class":59},"      # - 左边是你本机路径 : 右边是容器路径\n",[53,326,328],{"class":55,"line":327},38,[53,329,318],{"class":59},[53,331,333,335],{"class":55,"line":332},39,[53,334,233],{"class":100},[53,336,337],{"class":104},"\u002Fdocker\u002Fapps\u002Fxunlei:\u002Fxunlei\u002Fdata\n",[53,339,341],{"class":55,"line":340},40,[53,342,343],{"class":59},"      # 传输目录\n",[53,345,347,349],{"class":55,"line":346},41,[53,348,233],{"class":100},[53,350,351],{"class":104},"\u002Fxunlei_downloads:\u002Fxunlei\u002Fdownloads\n",[53,353,355],{"class":55,"line":354},42,[53,356,357],{"class":59},"    # 网络模式：桥接模式\n",[53,359,361,364,366],{"class":55,"line":360},43,[53,362,363],{"class":96},"    network_mode",[53,365,101],{"class":100},[53,367,368],{"class":104},"bridge\n",[53,370,372],{"class":55,"line":371},44,[53,373,374],{"class":59},"    # 端口\n",[53,376,378,381],{"class":55,"line":377},45,[53,379,380],{"class":96},"    ports",[53,382,120],{"class":100},[53,384,386],{"class":55,"line":385},46,[53,387,388],{"class":59},"      # 端口说明功能\n",[53,390,392],{"class":55,"line":391},47,[53,393,394],{"class":59},"      # webUI端口\n",[53,396,398,400],{"class":55,"line":397},48,[53,399,233],{"class":100},[53,401,402],{"class":104},"2345:2345\n",[53,404,406],{"class":55,"line":405},49,[53,407,408],{"class":59},"    # 重启策略，总是重启\n",[53,410,412,415,417],{"class":55,"line":411},50,[53,413,414],{"class":96},"    restart",[53,416,101],{"class":100},[53,418,419],{"class":104},"always\n",[421,422,424],"h3",{"id":423},"_11-如何使用-dpanel-面板创建-docker-compose-项目","1.1 如何使用 dpanel 面板创建 docker-compose 项目?",[16,426,427,428,432],{},"首先，需要打开 dpanel，并且登录 dpanel。找到上面 ",[429,430,431],"strong",{},"compose→创建任务→输入项目名称 xunlei→复制粘贴yaml"," 文件内容，最后点部署就可以等待安装。",[16,434,435],{},[436,437],"img",{"alt":26,"src":438},"https:\u002F\u002Fimg.nw177.cn\u002Fblog\u002F2026\u002F06\u002F04\u002F1780567356589.avif",[421,440,442],{"id":441},"_12-如何打开创建好的项目","1.2 如何打开创建好的项目？",[16,444,445],{},"打开浏览器，输入 docker 服务器的 ip +端口 2345，访问迅雷。大多数 docker 只要有 webUI 都会有端口的。",[31,447],{},[11,449,451],{"id":450},"_2-qbittorrent","2 qbittorrent",[16,453,454],{},"做文件分发时，qBittorrent 是一个成熟的选择。这次我们安装自带中文界面的 qBittorrent。",[20,456,458],{"className":47,"code":457,"language":49,"meta":26,"style":26},"# 官方文档\n# https:\u002F\u002Fdocs.linuxserver.io\u002Fimages\u002Fdocker-qbittorrent\n# https:\u002F\u002Fhub.docker.com\u002Fr\u002Flinuxserver\u002Fqbittorrent\n# 密码admin，adminadmin 如果不是需要从日志中查看\n# ---\n\nname: qbittorrent\n# 最后编辑时间：2025-02-18\nservices:\n  qbittorrent:\n    # 镜像地址，此为自带tracker中文版本\n    image: superng6\u002Fqbittorrent:latest\n    # 容器名\n    container_name: qbittorrent\n    # 主机名\n    hostname: qbittorrent\n    # 路径\n    environment:\n      # 用户和用户组权限，ssh中使用“id 用户名”查看，用户组一般为100(users)\n      # 第一个用户而言，群晖为1026，新绿联为1001，linux类系统为1000，后续用户均+1\n      # 如果出现无法传输的情况，改为0\n      - PUID=1000\n      - PGID=100\n      # 时区\n      - TZ=Asia\u002FShanghai\n      # webui端口，自定义\n      - WEBUI_PORT=8080\n      # 传输端口，可以自定义\n      - TORRENTING_PORT=6881\n    volumes:\n      # 配置文件目录\n      # - 左边是你本机路径 : 右边是容器路径\n      - \u002Fdocker\u002Fapps\u002Fqbittorrent\u002Fappdata:\u002Fconfig\n      - \u002Fqb_downloads:\u002Fdownloads\n    # 网络模式：host模式\n    # 推荐使用host模式，能连接上ipv6，host网络+自定义容器端口不会导致和别的服务的端口产生冲突\n    network_mode: host\n    # 重启策略，总是重启\n    restart: always\n",[28,459,460,464,469,474,479,483,487,496,500,506,513,518,527,531,539,543,551,555,561,565,569,574,581,588,592,598,603,610,615,622,628,632,636,643,650,655,660,669,673],{"__ignoreMap":26},[53,461,462],{"class":55,"line":56},[53,463,60],{"class":59},[53,465,466],{"class":55,"line":63},[53,467,468],{"class":59},"# https:\u002F\u002Fdocs.linuxserver.io\u002Fimages\u002Fdocker-qbittorrent\n",[53,470,471],{"class":55,"line":69},[53,472,473],{"class":59},"# https:\u002F\u002Fhub.docker.com\u002Fr\u002Flinuxserver\u002Fqbittorrent\n",[53,475,476],{"class":55,"line":75},[53,477,478],{"class":59},"# 密码admin，adminadmin 如果不是需要从日志中查看\n",[53,480,481],{"class":55,"line":82},[53,482,85],{"class":59},[53,484,485],{"class":55,"line":88},[53,486,79],{"emptyLinePlaceholder":78},[53,488,489,491,493],{"class":55,"line":93},[53,490,97],{"class":96},[53,492,101],{"class":100},[53,494,495],{"class":104},"qbittorrent\n",[53,497,498],{"class":55,"line":108},[53,499,111],{"class":59},[53,501,502,504],{"class":55,"line":114},[53,503,117],{"class":96},[53,505,120],{"class":100},[53,507,508,511],{"class":55,"line":123},[53,509,510],{"class":96},"  qbittorrent",[53,512,120],{"class":100},[53,514,515],{"class":55,"line":131},[53,516,517],{"class":59},"    # 镜像地址，此为自带tracker中文版本\n",[53,519,520,522,524],{"class":55,"line":137},[53,521,140],{"class":96},[53,523,101],{"class":100},[53,525,526],{"class":104},"superng6\u002Fqbittorrent:latest\n",[53,528,529],{"class":55,"line":148},[53,530,151],{"class":59},[53,532,533,535,537],{"class":55,"line":154},[53,534,157],{"class":96},[53,536,101],{"class":100},[53,538,495],{"class":104},[53,540,541],{"class":55,"line":164},[53,542,167],{"class":59},[53,544,545,547,549],{"class":55,"line":170},[53,546,173],{"class":96},[53,548,101],{"class":100},[53,550,495],{"class":104},[53,552,553],{"class":55,"line":180},[53,554,201],{"class":59},[53,556,557,559],{"class":55,"line":186},[53,558,207],{"class":96},[53,560,120],{"class":100},[53,562,563],{"class":55,"line":198},[53,564,221],{"class":59},[53,566,567],{"class":55,"line":204},[53,568,227],{"class":59},[53,570,571],{"class":55,"line":212},[53,572,573],{"class":59},"      # 如果出现无法传输的情况，改为0\n",[53,575,576,578],{"class":55,"line":218},[53,577,233],{"class":100},[53,579,580],{"class":104},"PUID=1000\n",[53,582,583,585],{"class":55,"line":224},[53,584,233],{"class":100},[53,586,587],{"class":104},"PGID=100\n",[53,589,590],{"class":55,"line":230},[53,591,264],{"class":59},[53,593,594,596],{"class":55,"line":239},[53,595,233],{"class":100},[53,597,272],{"class":104},[53,599,600],{"class":55,"line":247},[53,601,602],{"class":59},"      # webui端口，自定义\n",[53,604,605,607],{"class":55,"line":253},[53,606,233],{"class":100},[53,608,609],{"class":104},"WEBUI_PORT=8080\n",[53,611,612],{"class":55,"line":261},[53,613,614],{"class":59},"      # 传输端口，可以自定义\n",[53,616,617,619],{"class":55,"line":267},[53,618,233],{"class":100},[53,620,621],{"class":104},"TORRENTING_PORT=6881\n",[53,623,624,626],{"class":55,"line":275},[53,625,310],{"class":96},[53,627,120],{"class":100},[53,629,630],{"class":55,"line":281},[53,631,318],{"class":59},[53,633,634],{"class":55,"line":289},[53,635,324],{"class":59},[53,637,638,640],{"class":55,"line":295},[53,639,233],{"class":100},[53,641,642],{"class":104},"\u002Fdocker\u002Fapps\u002Fqbittorrent\u002Fappdata:\u002Fconfig\n",[53,644,645,647],{"class":55,"line":301},[53,646,233],{"class":100},[53,648,649],{"class":104},"\u002Fqb_downloads:\u002Fdownloads\n",[53,651,652],{"class":55,"line":307},[53,653,654],{"class":59},"    # 网络模式：host模式\n",[53,656,657],{"class":55,"line":315},[53,658,659],{"class":59},"    # 推荐使用host模式，能连接上ipv6，host网络+自定义容器端口不会导致和别的服务的端口产生冲突\n",[53,661,662,664,666],{"class":55,"line":321},[53,663,363],{"class":96},[53,665,101],{"class":100},[53,667,668],{"class":104},"host\n",[53,670,671],{"class":55,"line":327},[53,672,408],{"class":59},[53,674,675,677,679],{"class":55,"line":332},[53,676,414],{"class":96},[53,678,101],{"class":100},[53,680,419],{"class":104},[31,682],{},[11,684,686],{"id":685},"_3-统一项目","3 统一项目",[16,688,689],{},"同一类的应用程序，我们可以创建成一个项目，这样一个 yaml 文件就可以同时安装多个 docker 项目。",[20,691,693],{"className":47,"code":692,"language":49,"meta":26,"style":26},"# qbittorrent + xunlei\n# 最后编辑时间：2025-02-18\nservices:\n  xunlei:\n    # 镜像地址，此为正式版，内置aria2\n    image: cnk3x\u002Fxunlei:latest\n    # 容器名\n    container_name: xunlei\n    # 主机名\n    hostname: xunlei\n    # 特权，赋予容器与主机几乎一致的权限，必须开启\n    privileged: true\n    # 路径\n    environment:\n      # 迅雷的用户、用户组权限\n      # 用户和用户组权限，ssh中使用“id 用户名”查看，用户组一般为100(users)\n      # 第一个用户而言，群晖为1026，新绿联为1001，linux类系统为1000，后续用户均+1\n      - XL_UID=1000\n      - XL_GID=100\n      # 默认创建新文件的权限，一般写022\n      - UMASK=022\n      # 时区\n      - TZ=Asia\u002FShanghai\n      # 自定义迅雷的容器端口，默认为2345\n      - XL_DASHBOARD_PORT=2345\n      # 设置迅雷WebUI的访问账号密码，可以不设，预设为xunlei\n      # - XL_DASHBOADR_USER=xunlei\n      # - XL_DASHBOADR_PASSWORD=xunlei\n    volumes:\n      # 配置文件目录\n      # - 左边是你本机路径 : 右边是容器路径\n      # 配置文件目录\n      - \u002Fdocker\u002Fapps\u002Fxunlei:\u002Fxunlei\u002Fdata\n      # 传输目录\n      - \u002Fxunlei_downloads:\u002Fxunlei\u002Fdownloads\n    # 网络模式：桥接模式\n    network_mode: bridge\n    # 端口\n    ports:\n      # 端口说明功能\n      # webUI端口\n      - 2345:2345\n    # 重启策略，总是重启\n    restart: always\n\n  qbittorrent:\n    # 镜像地址，此为自带tracker中文版本\n    image: superng6\u002Fqbittorrent:latest\n    # 容器名\n    container_name: qbittorrent\n    # 主机名\n    hostname: qbittorrent\n    # 路径\n    environment:\n      # 用户和用户组权限，ssh中使用“id 用户名”查看，用户组一般为100(users)\n      # 第一个用户而言，群晖为1026，新绿联为1001，linux类系统为1000，后续用户均+1\n      # 如果出现无法传输的情况，改为0\n      - PUID=1000\n      - PGID=100\n      # 时区\n      - TZ=Asia\u002FShanghai\n      # webui端口，自定义\n      - WEBUI_PORT=8080\n      # 传输端口，可以自定义\n      - TORRENTING_PORT=6881\n    volumes:\n      # 配置文件目录\n      # - 左边是你本机路径 : 右边是容器路径\n      - \u002Fdocker\u002Fapps\u002Fqbittorrent\u002Fappdata:\u002Fconfig\n      - \u002Fqb_downloads:\u002Fdownloads\n    # 网络模式：桥接模式\n    # 推荐使用host模式，能连接上ipv6，host网络+自定义容器端口不会导致和别的服务的端口产生冲突\n    network_mode: host\n    # 重启策略，总是重启\n    restart: always\n",[28,694,695,700,704,710,716,720,728,732,740,744,752,756,764,768,774,778,782,786,792,798,802,808,812,818,822,828,832,836,840,846,850,854,858,864,868,874,878,886,890,896,900,904,910,914,922,926,932,936,944,948,956,961,970,975,982,987,992,997,1004,1011,1016,1023,1028,1035,1040,1047,1054,1059,1064,1071,1078,1083,1088,1097,1102],{"__ignoreMap":26},[53,696,697],{"class":55,"line":56},[53,698,699],{"class":59},"# qbittorrent + xunlei\n",[53,701,702],{"class":55,"line":63},[53,703,111],{"class":59},[53,705,706,708],{"class":55,"line":69},[53,707,117],{"class":96},[53,709,120],{"class":100},[53,711,712,714],{"class":55,"line":75},[53,713,126],{"class":96},[53,715,120],{"class":100},[53,717,718],{"class":55,"line":82},[53,719,134],{"class":59},[53,721,722,724,726],{"class":55,"line":88},[53,723,140],{"class":96},[53,725,101],{"class":100},[53,727,145],{"class":104},[53,729,730],{"class":55,"line":93},[53,731,151],{"class":59},[53,733,734,736,738],{"class":55,"line":108},[53,735,157],{"class":96},[53,737,101],{"class":100},[53,739,105],{"class":104},[53,741,742],{"class":55,"line":114},[53,743,167],{"class":59},[53,745,746,748,750],{"class":55,"line":123},[53,747,173],{"class":96},[53,749,101],{"class":100},[53,751,105],{"class":104},[53,753,754],{"class":55,"line":131},[53,755,183],{"class":59},[53,757,758,760,762],{"class":55,"line":137},[53,759,189],{"class":96},[53,761,101],{"class":100},[53,763,195],{"class":194},[53,765,766],{"class":55,"line":148},[53,767,201],{"class":59},[53,769,770,772],{"class":55,"line":154},[53,771,207],{"class":96},[53,773,120],{"class":100},[53,775,776],{"class":55,"line":164},[53,777,215],{"class":59},[53,779,780],{"class":55,"line":170},[53,781,221],{"class":59},[53,783,784],{"class":55,"line":180},[53,785,227],{"class":59},[53,787,788,790],{"class":55,"line":186},[53,789,233],{"class":100},[53,791,236],{"class":104},[53,793,794,796],{"class":55,"line":198},[53,795,233],{"class":100},[53,797,244],{"class":104},[53,799,800],{"class":55,"line":204},[53,801,250],{"class":59},[53,803,804,806],{"class":55,"line":212},[53,805,233],{"class":100},[53,807,258],{"class":104},[53,809,810],{"class":55,"line":218},[53,811,264],{"class":59},[53,813,814,816],{"class":55,"line":224},[53,815,233],{"class":100},[53,817,272],{"class":104},[53,819,820],{"class":55,"line":230},[53,821,278],{"class":59},[53,823,824,826],{"class":55,"line":239},[53,825,233],{"class":100},[53,827,286],{"class":104},[53,829,830],{"class":55,"line":247},[53,831,292],{"class":59},[53,833,834],{"class":55,"line":253},[53,835,298],{"class":59},[53,837,838],{"class":55,"line":261},[53,839,304],{"class":59},[53,841,842,844],{"class":55,"line":267},[53,843,310],{"class":96},[53,845,120],{"class":100},[53,847,848],{"class":55,"line":275},[53,849,318],{"class":59},[53,851,852],{"class":55,"line":281},[53,853,324],{"class":59},[53,855,856],{"class":55,"line":289},[53,857,318],{"class":59},[53,859,860,862],{"class":55,"line":295},[53,861,233],{"class":100},[53,863,337],{"class":104},[53,865,866],{"class":55,"line":301},[53,867,343],{"class":59},[53,869,870,872],{"class":55,"line":307},[53,871,233],{"class":100},[53,873,351],{"class":104},[53,875,876],{"class":55,"line":315},[53,877,357],{"class":59},[53,879,880,882,884],{"class":55,"line":321},[53,881,363],{"class":96},[53,883,101],{"class":100},[53,885,368],{"class":104},[53,887,888],{"class":55,"line":327},[53,889,374],{"class":59},[53,891,892,894],{"class":55,"line":332},[53,893,380],{"class":96},[53,895,120],{"class":100},[53,897,898],{"class":55,"line":340},[53,899,388],{"class":59},[53,901,902],{"class":55,"line":346},[53,903,394],{"class":59},[53,905,906,908],{"class":55,"line":354},[53,907,233],{"class":100},[53,909,402],{"class":104},[53,911,912],{"class":55,"line":360},[53,913,408],{"class":59},[53,915,916,918,920],{"class":55,"line":371},[53,917,414],{"class":96},[53,919,101],{"class":100},[53,921,419],{"class":104},[53,923,924],{"class":55,"line":377},[53,925,79],{"emptyLinePlaceholder":78},[53,927,928,930],{"class":55,"line":385},[53,929,510],{"class":96},[53,931,120],{"class":100},[53,933,934],{"class":55,"line":391},[53,935,517],{"class":59},[53,937,938,940,942],{"class":55,"line":397},[53,939,140],{"class":96},[53,941,101],{"class":100},[53,943,526],{"class":104},[53,945,946],{"class":55,"line":405},[53,947,151],{"class":59},[53,949,950,952,954],{"class":55,"line":411},[53,951,157],{"class":96},[53,953,101],{"class":100},[53,955,495],{"class":104},[53,957,959],{"class":55,"line":958},51,[53,960,167],{"class":59},[53,962,964,966,968],{"class":55,"line":963},52,[53,965,173],{"class":96},[53,967,101],{"class":100},[53,969,495],{"class":104},[53,971,973],{"class":55,"line":972},53,[53,974,201],{"class":59},[53,976,978,980],{"class":55,"line":977},54,[53,979,207],{"class":96},[53,981,120],{"class":100},[53,983,985],{"class":55,"line":984},55,[53,986,221],{"class":59},[53,988,990],{"class":55,"line":989},56,[53,991,227],{"class":59},[53,993,995],{"class":55,"line":994},57,[53,996,573],{"class":59},[53,998,1000,1002],{"class":55,"line":999},58,[53,1001,233],{"class":100},[53,1003,580],{"class":104},[53,1005,1007,1009],{"class":55,"line":1006},59,[53,1008,233],{"class":100},[53,1010,587],{"class":104},[53,1012,1014],{"class":55,"line":1013},60,[53,1015,264],{"class":59},[53,1017,1019,1021],{"class":55,"line":1018},61,[53,1020,233],{"class":100},[53,1022,272],{"class":104},[53,1024,1026],{"class":55,"line":1025},62,[53,1027,602],{"class":59},[53,1029,1031,1033],{"class":55,"line":1030},63,[53,1032,233],{"class":100},[53,1034,609],{"class":104},[53,1036,1038],{"class":55,"line":1037},64,[53,1039,614],{"class":59},[53,1041,1043,1045],{"class":55,"line":1042},65,[53,1044,233],{"class":100},[53,1046,621],{"class":104},[53,1048,1050,1052],{"class":55,"line":1049},66,[53,1051,310],{"class":96},[53,1053,120],{"class":100},[53,1055,1057],{"class":55,"line":1056},67,[53,1058,318],{"class":59},[53,1060,1062],{"class":55,"line":1061},68,[53,1063,324],{"class":59},[53,1065,1067,1069],{"class":55,"line":1066},69,[53,1068,233],{"class":100},[53,1070,642],{"class":104},[53,1072,1074,1076],{"class":55,"line":1073},70,[53,1075,233],{"class":100},[53,1077,649],{"class":104},[53,1079,1081],{"class":55,"line":1080},71,[53,1082,357],{"class":59},[53,1084,1086],{"class":55,"line":1085},72,[53,1087,659],{"class":59},[53,1089,1091,1093,1095],{"class":55,"line":1090},73,[53,1092,363],{"class":96},[53,1094,101],{"class":100},[53,1096,668],{"class":104},[53,1098,1100],{"class":55,"line":1099},74,[53,1101,408],{"class":59},[53,1103,1105,1107,1109],{"class":55,"line":1104},75,[53,1106,414],{"class":96},[53,1108,101],{"class":100},[53,1110,419],{"class":104},[1112,1113,1114],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":26,"searchDepth":63,"depth":63,"links":1116},[1117,1118,1122,1123],{"id":13,"depth":63,"text":14},{"id":40,"depth":63,"text":41,"children":1119},[1120,1121],{"id":423,"depth":69,"text":424},{"id":441,"depth":69,"text":442},{"id":450,"depth":63,"text":451},{"id":685,"depth":63,"text":686},"docker",null,"2025-08-05","采用 Docker 搭建文件传输服务",false,"md","https:\u002F\u002Fimg.nw177.cn\u002Fblog\u002F2026\u002F06\u002F04\u002F1780562435830.avif",{"published":1132},"2025-08-11","\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F02.容器项目-传输类",{"title":5,"description":1127},"blog\u002F10-技术专栏\u002F10-docker\u002F02.容器项目&传输类",[1124,49],"EhF9Lt6eDMxuuPypFZYPVRqraBklMiMXGzPc2Kk5W9M",[1139,1143,1147,1151,1154,1157,1161,1164,1168,1172,1176,1180,1184,1188,1192,1196,1200,1204,1208,1211,1215,1219,1223,1227,1230,1234,1238,1242,1246,1250,1254,1258,1262,1266,1270,1274,1278,1281,1285,1289,1293,1297,1300,1301,1304,1307,1310,1313,1316,1319,1322,1325,1328,1331,1334,1337,1340,1343,1346,1349,1352],{"path":1140,"title":1141,"date":1142},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F16.IPv6与DNS的分手协议","IPv6 与 DNS 的分手协议","2026-10-02",{"path":1144,"title":1145,"date":1146},"\u002Fblog\u002F10-技术专栏\u002F50-AI\u002F04.我的-AI-入坑记","我的 AI 入坑记","2026-09-24",{"path":1148,"title":1149,"date":1150},"\u002Fblog\u002F10-技术专栏\u002F50-AI\u002F01.用-Docker-部署-Ollama-与-Open-WebUI-搭建本地大模型","用 Docker 部署 Ollama 与 Open WebUI 搭建本地大模型","2026-09-23",{"path":1152,"title":1153,"date":1150},"\u002Fblog\u002F10-技术专栏\u002F50-AI\u002F02.用-New-API-搭建统一-LLM-网关与-Lucky-反代外网访问","用 New API 搭建统一 LLM 网关与 Lucky 反代外网访问",{"path":1155,"title":1156,"date":1150},"\u002Fblog\u002F10-技术专栏\u002F50-AI\u002F03.用-Dify-搭建本地知识库让-AI-读懂你写的博客","用 Dify 搭建本地知识库，让 AI 读懂你写的博客",{"path":1158,"title":1159,"date":1160},"\u002Fblog\u002F20-生活碎片\u002F03-2026年秋季计划","2026 年秋季计划","2026-09-19",{"path":1162,"title":1163,"date":1160},"\u002Fblog\u002F30-学习笔记\u002F02.Python入门书单","Python 入门书单：从第一行代码到写出真正的程序",{"path":1165,"title":1166,"date":1167},"\u002Fblog\u002F10-技术专栏\u002F40-WebsiteBuilding\u002F09-Cloudflare-低延迟接入方案","Cloudflare 低延迟接入方案","2026-07-22 03:17:28",{"path":1169,"title":1170,"date":1171},"\u002Fblog\u002F10-技术专栏\u002F40-WebsiteBuilding\u002F08-Cloudflare-ImgBed-免费私有图床完整部署手册","Cloudflare ImgBed 免费私有图床完整部署手册","2026-07-19 02:09:08",{"path":1173,"title":1174,"date":1175},"\u002Fblog\u002F10-技术专栏\u002F40-WebsiteBuilding\u002F07-腾讯云-EdgeOne-边缘函数实现七牛-S3-随机图床-API","腾讯云 EdgeOne 边缘函数实现七牛云 & S3 存储随机图床 API","2026-07-13 21:25:48",{"path":1177,"title":1178,"date":1179},"\u002Fblog\u002F10-技术专栏\u002F40-WebsiteBuilding\u002F06-腾讯-EdgeOne-部署-Twikoo-评论系统指南","腾讯EdgeOne部署Twikoo评论系统指南","2026-06-14 17:41:11",{"path":1181,"title":1182,"date":1183},"\u002Fblog\u002F10-技术专栏\u002F40-WebsiteBuilding\u002F05-OpenList-接入-S3-对象存储完整使用教程","OpenList 接入 S3 对象存储完整使用教程","2026-06-11 13:08:07",{"path":1185,"title":1186,"date":1187},"\u002Fblog\u002F10-技术专栏\u002F40-WebsiteBuilding\u002F04-Cloudflare-R2-图床与全球加速方案","Cloudflare R2 图床与全球加速方案","2026-06-09 13:07:35",{"path":1189,"title":1190,"date":1191},"\u002Fblog\u002F10-技术专栏\u002F40-WebsiteBuilding\u002F03-免费图床与CDN加速方案","免费图床与 CDN 加速方案","2026-06-09",{"path":1193,"title":1194,"date":1195},"\u002Fblog\u002F10-技术专栏\u002F40-WebsiteBuilding\u002F02-零基础优雅搭建静态博客全教程","零基础优雅搭建静态博客全教程","2026-06-04",{"path":1197,"title":1198,"date":1199},"\u002Fblog\u002F10-技术专栏\u002F40-WebsiteBuilding\u002F01-远古产物—博客","赛博空间的私人岛屿：博客架构与风格美学","2026-06-03",{"path":1201,"title":1202,"date":1203},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F15.关于NAT回流与内网域名直连的终极指南","关于 NAT 回流与内网域名直连的终极指南","2026-05-13",{"path":1205,"title":1206,"date":1207},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F14.飞牛安全访问与Lucky反代雷池防护","飞牛安全访问与 Lucky 反代雷池防护","2026-02-03",{"path":1209,"title":1210,"date":1207},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F18.一键DD纯净系统脚本","一键 DD 纯净系统脚本",{"path":1212,"title":1213,"date":1214},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F17.Ventoy多系统启动盘制作与使用全指南","Ventoy 多系统启动盘制作与使用全指南","2026-02-02",{"path":1216,"title":1217,"date":1218},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F16.Emby元数据匹配与中文命名规范","Emby 元数据匹配与中文命名规范","2026-02-01",{"path":1220,"title":1221,"date":1222},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F15.基于PVE系统安装LXC-debian","基于 PVE 系统安装 LXC-debian","2026-01-19",{"path":1224,"title":1225,"date":1226},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F13.Lucky反向代理终极指南","Lucky 反向代理终极指南","2026-01-16",{"path":1228,"title":1229,"date":1226},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F14.OEC盒子Armbian刷机指南","OEC 盒子 Armbian 刷机指南",{"path":1231,"title":1232,"date":1233},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F13.oec-fnOS安装","OEC-Turbo (RK3566) 安装飞牛 OS","2026-01-15",{"path":1235,"title":1236,"date":1237},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F12.新的篇章，debian12的配置","新的篇章，debian12 的配置","2026-01-14",{"path":1239,"title":1240,"date":1241},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F11.飞牛OS安装后必要配置","飞牛 OS 安装后必要配置","2026-01-06",{"path":1243,"title":1244,"date":1245},"\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F11.NAS-导航页的终极形态","告别繁琐配置：NAS 导航页的终极形态 —— 从 Sun-Panel 到 FlatNAS","2026-01-05",{"path":1247,"title":1248,"date":1249},"\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F10.LogVar-弹幕-API-部署指南","LogVar 弹幕 API  (纯本地缓存版) 部署指南","2025-12-30",{"path":1251,"title":1252,"date":1253},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F10.基于Lucky与QMediaSync的飞牛远程媒体访问","基于 Lucky 与 QMediaSync 的飞牛远程媒体访问","2025-12-26",{"path":1255,"title":1256,"date":1257},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F09.新的篇章，PVE虚拟机","新的篇章，PVE虚拟机","2025-12-21",{"path":1259,"title":1260,"date":1261},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F08.Linux系统，音响有底噪","Linux 系统，音响有底噪怎么办？","2025-12-17",{"path":1263,"title":1264,"date":1265},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F07.飞牛OS的安装","飞牛 OS 的安装","2025-12-14",{"path":1267,"title":1268,"date":1269},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F06.Debian13换源","Debian13 换源","2025-11-29",{"path":1271,"title":1272,"date":1273},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F05.Kodi-CoreELEC安装指南","Kodi & CoreELEC 安装指南","2025-11-21",{"path":1275,"title":1276,"date":1277},"\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F09.兰空图床和高清图标库","兰空图床和高清图标库","2025-11-15",{"path":1279,"title":1280,"date":1277},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F04.N1盒子Armbian刷机与配置","N1 盒子 Armbian 刷机与配置",{"path":1282,"title":1283,"date":1284},"\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F08.你是否需要一个图床？","你是否需要一个图床？","2025-11-14",{"path":1286,"title":1287,"date":1288},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F03.飞牛NAS第三方应用商店安装","飞牛 NAS 第三方应用商店 (FnDepot) 安装指南","2025-10-13",{"path":1290,"title":1291,"date":1292},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F02.Hills播放器-Windows-安卓","Hills 播放器（Windows + 安卓）","2025-09-24",{"path":1294,"title":1295,"date":1296},"\u002Fblog\u002F10-技术专栏\u002F30-Linux\u002F01.一行代码降低服务器功耗","一行代码降低服务器功耗","2025-08-19",{"path":1298,"title":1299,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F01.容器-docker-docker-compose","容器 & docker & docker-compose",{"path":1133,"title":5,"date":1126},{"path":1302,"title":1303,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F03.容器项目-相册类","容器项目&相册类",{"path":1305,"title":1306,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F04.容器项目-媒体类","容器项目&媒体类",{"path":1308,"title":1309,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F05.Emby自有授权媒体库（一）","Emby 自有授权媒体库（一）",{"path":1311,"title":1312,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F06.Emby自有授权媒体库（二）","Emby 自有授权媒体库（二）",{"path":1314,"title":1315,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F10-docker\u002F07.Adguard-Home去广告","Adguard Home 去广告",{"path":1317,"title":1318,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F01.新的篇章，软路由","新的篇章，软路由",{"path":1320,"title":1321,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F02.如何玩公网，怎么远程访问（一）","如何玩公网，怎么远程访问（一）",{"path":1323,"title":1324,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F03.如何玩公网，怎么远程访问（二）","如何玩公网，怎么远程访问（二）",{"path":1326,"title":1327,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F04.如何玩公网，怎么远程访问（三）","如何玩公网，怎么远程访问（三）",{"path":1329,"title":1330,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F05.免费域名与远程访问","免费域名与远程访问",{"path":1332,"title":1333,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F06.没有公网如何远程访问","没有公网如何远程访问",{"path":1335,"title":1336,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F07.爱快与OpenWRT双软路由MAC地址重复问题修正","爱快与 OpenWRT 双软路由MAC地址重复问题修正",{"path":1338,"title":1339,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F08.OpenWRT扩容","OpenWRT 扩容",{"path":1341,"title":1342,"date":1126},"\u002Fblog\u002F10-技术专栏\u002F20-network\u002F09.OpenWRT旁路由一条龙教程","OpenWRT 旁路由一条龙教程",{"path":1344,"title":1345,"date":1126},"\u002Fblog\u002F20-生活碎片\u002F02.在裂缝中种满阳光","让灵魂带着光行走：在裂缝中种满太阳",{"path":1347,"title":1348,"date":1126},"\u002Fblog\u002F30-学习笔记\u002F01.Typora学习笔记","Typora学习笔记",{"path":1350,"title":1351,"date":1126},"\u002Fblog\u002F30-学习笔记\u002F02.Markdown-拓展","Markdown 拓展",{"path":1353,"title":1354,"date":1355},"\u002Fblog\u002F20-生活碎片\u002F01.拥抱生活中的光与热","拥抱生活中的光与热","2025-07-05",1791466509608]