Docker搭建相关服务
AList
docker run -d --name="alist" --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 xhofe/alist:latest
ddddocr
docker run -d --name="ddddocr" --restart=always -p 9898:9898 xhofe/ddddocr_server:main
Alist
和ddddocr
两个容器有关联:前者需要后者为其提供验证码OCR服务。所以最好用docker-compose
部署,详见笔记:Docker容器自定义启动顺序
Syncthing
docker run -d --name="syncthing" --restart=always -p 8384:8384 -p 22000:22000/tcp -p 22000:22000/udp -p 21027:21027/udp -v /wherever/st-sync:/var/syncthing --hostname=my-syncthing syncthing/syncthing:1.23.5
Syncthing-Relay-Discosrv
docker run -d --name="Syncthing-Relay-Discosrv" --restart=always -p 22067:22067 -p 8443:8443 johngong/syncthing-relay-discosrv:latest
在syncthing中设置发现和中继服务器地址:
https://152.69.216.224:18443/?id=<device id>
relay://152.69.216.224:12067?id=<device id>
# 查看device id
docker logs Syncthing-Relay-Discosrv
Pandora(截止2023-12停止更新)
docker run -d --name="pandora" --restart=always -e PANDORA_CLOUD=cloud -e PANDORA_SERVER=0.0.0.0:8899 -p 8899:8899 pengzhile/pandora
通过Token登录,过期后,登录chat.openai,登录后,在开发者工具中获取

PandoraNext(新的项目)
docker run -d --restart always --name PandoraNext --net=bridge \
-p 8181:8181 \
-v /mnt/sda2/docker/data/pandoranext/data:/data \
-v /mnt/sda2/docker/data/pandoranext/sessions:/root/.cache/PandoraNext \
pengzhile/pandora-next
- 容器内默认监听
8181
端口,映射宿主机的8181
端口,可自行修改 - 映射目录到容器内的
/data
目录,config.json
、tokens.json
- 获取license_id 填在
config.json
中(必须项,否则会报错:License ID is required
) - 映射目录到容器内的
/root/.cache/PandoraNext
目录,保留登录的session
,避免重启容器登录状态丢失
npc客户端
一款内网穿透工具,需要具有公网IP的服务器,服务器上安装nps
服务端
docker run -d --name="npc" --restart=always --net=host ffdfgdfg/npc -server=<ip:port> -vkey=******<其他参数>
my_django_project(自建镜像)
详细操作,例如如何编写Dockerfile文件,请阅读Docker部署Django项目笔记
进入项目根目录后执行:
# 创建镜像
docker build -t mysite .
# 运行容器
docker run -d --name="my_django_project" --restart=always -p 8000:8000 -v $(pwd):/app mysite
xiaoya(小雅资源)
通过脚本安装docker容器:
# 标准模式,打开端口 5678
bash -c "$(curl -s http://docker.xiaoya.pro/update_new.sh)"
# host模式(推荐,软路由和NAS上更少网络故障,打开端口 6789)
bash -c "$(curl -s http://docker.xiaoya.pro/update_new.sh)" -s host
我已经更改了脚本中的挂载点为/mnt/sda2/docker/data
,那么需要上传自定义脚本scp ./Docker_xiaoya.sh <UserName>@<IP>:<Dest_Path>
到服务器,然后执行:
# 标准模式:端口 5678
./Docker_xiaoya.sh
# host模式:端口 5678
./Docker_xiaoya.sh -s host
第一次运行脚本需要输入阿里云的相关信息:
# 阿里云盘TOKEN(AList官方文档):
9e3bec188b99484593f40604d0756785
# 阿里云盘OPEN TOKEN(AList官方文档):
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI2MmFjMDk3NDJmNzc0ZmE1OWU3M2NhMzc0ZjhjMTA3MCIsImF1ZCI6Ijc2OTE3Y2NjY2Q0NDQxYzM5NDU3YTA0ZjYwODRmYjJmIiwiZXhwIjoxNjk1NjIzOTQ0LCJpYXQiOjE2ODc4NDc5NDR9.LlWjEhvs2cnZXffJPjAWdg9plC12So1U6-gQxQb6Xk9jzHsbK9XNL9dCnYt8g0h2x77yzElbyIxGZq-99PrXQA
# 阿里云盘FOLDER ID(浏览器登录阿里云盘进入文件夹,在浏览器地址栏中获取):
649a8550dd5fd405bd72494c96a021d355d415c3
浏览器访问
启动容器后,等待几分钟加载完内容就可以访问了,我采用了host模式:http://yourIP:6789
AList V3 无法套娃挂载小雅的解决

执行下面代码获取令牌
docker exec -i xiaoya-hostmode sqlite3 data/data.db <<EOF
select value from x_setting_items where key = "token";
EOF
把令牌填到Authorization
, Server
选用本地的docker地址,不要填账号和密码
AList通过webdav挂载
用户:guest
密码:guest_Api789
地址:http://yourIP:6789/dav
registry
搭建docker私有仓库
docker run -d --name DockerRegistry --restart=always -p 5000:5000 -v /mnt/sda2:/var/lib/registry registry
在Linux中,编辑/etc/docker/daemon.json
文件,添加仓库信任:
{
"insecure-registries": ["yourIP:5000"]
}
访问http://yourIP:5000/v2/_catalog,即可看到仓库列表
仓库路径:/mnt/sda2/docker/registry/v2/repositories
青龙面板
docker run -dit \
-v /mnt/sda2/docker/data/qinglong:/ql/data \
-p 5700:5700 \
--name qinglong \
--hostname qinglong \
--restart always \
whyour/qinglong
访问5700
端口,进行配置并登录
阿里云盘自动签到
-
添加依赖项:NodeJs项下
axios
-
添加环境变量
名称:
refreshToken
值:个人阿里云盘的Token -
添加定时任务
# 拉取脚本命令
ql repo https://github.com/mrabit/aliyundriveDailyCheck.git "autoSignin" "" "qlApi"
# 定时规则
0 9 * * *
完成上述后,执行一次任务,然后刷新浏览器。如果成功则会多一条任务autoSignin.js
,执行一次该任务,在日志中能看到执行结果。
IPTV播放源自动更新
- 上传自己编写的python脚本至github仓库
- 添加依赖项:Python3项下
requests
- 添加定时任务
# 拉取脚本命令
ql repo https://github.com/YoungYuan1971/my_projects.git "iptv_get.py"
# 定时规则
0 8 * * *
完成上述后,执行一次任务,然后刷新浏览器,如果成功则会多一条任务iptv_get.py
,执行一次该任务,在日志中能看到执行结果。
关于cron表达式
cron详细表达式详见笔记Mac下使用crontab定时任务
表达式也可以在线验证是否正确UU在线工具
Jellyfin服务端
默认端口号:8096
docker run -d \
--name Jellyfin \
--restart always \
-v /mnt/sda2/docker/data/jellyfin/config:/config \
-v /mnt/sda2/docker/data/jellyfin/cache:/cache \
-v /mnt/sda2:/media \
--net=host \
jellyfin/jellyfin:latest
Portainer服务
Portainer是管理Docker的界面化服务
管理界面url:yourIP:9000
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce
pixman(IPTV)服务
-
Arm/v7 架构系统请使用 pixman/pixman-armv7 镜像,自行修改后面使用方法里的
pixman/pixman
为pixman/pixman-armv7
-
一般用法:在播放器中输入
http://ip:port/xxx.m3u
直接观看,或在浏览器中输入前述地址并下载文件后用播放器打开
docker run -d --name=pixman -p 5050:5000 --restart=always pixman/pixman
- 导入外部的 m3u 文件,从而通过
http://ip:port/your.m3u
访问:
# 挂载后,将 m3u 文件放到 /path/to/yours 目录下,然后通过 http://ip:port/your.m3u 访问
docker run -d --name=pixman -p 5050:5000 -v /path/to/yours:/app/app/data/m3u --restart=always pixman/pixman
# 举例:
docker run -d --name=pixman -p 5050:5000 -v /mnt/sda2/docker/data/pixman/m3u:/app/app/data/m3u --restart=always pixman/pixman
支持的直播源:ysp.m3u,4gtv.m3u,tptv_proxy.m3u,itv_proxy.m3u等
DrawDB数据库设计
- 部署:
docker run --restart always --name drawdb -p 3000:80 -d ahdev0/drawdb
- 使用:浏览器输入http://yourIP:3000