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

Alistddddocr两个容器有关联:前者需要后者为其提供验证码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,登录后,在开发者工具中获取

image-20230630105413033

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.jsontokens.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 无法套娃挂载小雅的解决

img

执行下面代码获取令牌

docker exec -i xiaoya-hostmode sqlite3 data/data.db <<EOF
select value from x_setting_items where key = "token";
EOF

把令牌填到AuthorizationServer 选用本地的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端口,进行配置并登录

阿里云盘自动签到

  1. 添加依赖项:NodeJs项下axios

  2. 添加环境变量

    名称:refreshToken 值:个人阿里云盘的Token

  3. 添加定时任务

# 拉取脚本命令
ql repo https://github.com/mrabit/aliyundriveDailyCheck.git "autoSignin" "" "qlApi"

# 定时规则
0 9 * * *

完成上述后,执行一次任务,然后刷新浏览器。如果成功则会多一条任务autoSignin.js,执行一次该任务,在日志中能看到执行结果。

IPTV播放源自动更新

  1. 上传自己编写的python脚本至github仓库
  2. 添加依赖项:Python3项下requests
  3. 添加定时任务
# 拉取脚本命令
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/pixmanpixman/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