把自己用过的docker全都花了4个小时整理了出来,采用docker-compose方式,可以一键搭建很多服务,环境变量,个人群晖上测试正常。整理不易,可以看看docker-compose文件有多长,给个鸡腿鼓励楼主继续整理好东西。
安装的docker如下
下载器:qbittorrent,transmission
pt:iyuu
反代:lucky
docker管理:dockge,portainer
网盘:alist
个人笔记库:joplin
个人记事本:memos
音乐库:navidrome,LrcApi
书库:talekbook
媒体库管理:nastool,moviepilot
媒体库:plex,emby
订阅管理:sub-store
其他:qinglong,qd
iptv:肥羊的iptv,iptv-sources
导航页:sun-punel
密码管理器:vaultwarden
安装教程
把下面填完整,保存为.env
#以下为你自己的配置文件目录,示例为/volume1/docker/qb,最后不要加/
qb=
tr=
iyuu=
lucky=
dockge=
portainer=
alist=
joplin=
memos=
navidrome=
talebook=
sub-store=
nastool=
moviepilot=
plex=
emby=
qinglong=
qd=
vaultwarden=
USER= #qb和tr的账户
PASS= #qb和tr的密码
Download_path= # qb和tr下载路径
media_real_path= # 你的nastool和moviepilot的媒体库真实路径
media_docker_path= # 你的nastool和moviepilot的媒体库映射路径
musicpath=# 你的音乐库路径
复制下面的文件,保存为docker-compose.yml
version: '3.8'
services:
qbittorrent:
image: nevinee/qbittorrent
container_name: qbittorrent
environment:
- PUID=0
- PGID=0
- TZ: Asia/Shanghai
- WEBUI_PORT=8989
- QB_USERNAME==${USER}
- QB_PASSWORD=${PASS}
volumes:
- ${qb}:/data
- ${Download_real_path}:/downloads
restart: unless-stopped
network_mode: "host"
transmission:
image: linuxserver/transmission
container_name: transmission
restart: unless-stopped`
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
- TRANSMISSION_WEB_HOME=/config/transmission-web-control # 设置 Transmission Web,须在目录放第三方ui
- USER=${USER}
- PASS=${PASS}
volumes:
- ${tr}/config:/config
- ${tr}/watch:/watch
- ${Download_path}:/downloads
network_mode: host
iyuuplus_dev:
stdin_open: true
tty: true
volumes:
- ${iyuu}/iyuu:/iyuu
- ${iyuu}/iyuudev/data:/data
- ${qb}/data/BT_backup:/qb
- ${tr}/config/torrents:/tr
network_mode: host
container_name: IYUUPlus
restart: unless-stopped
image: iyuucn/iyuuplus-dev:latest
lucky:
image: gdy666/lucky
container_name: lucky
network_mode: host
volumes:
- ${lucky}:/goodluck
restart: unless-stopped
dockge:
image: louislam/dockge:1
restart: unless-stopped
ports:
- 5001:5001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${dockge}:/app/data
# If you want to use private registries, you need to share the auth file with Dockge:
# - /root/.docker/:/root/.docker
- /opt/stacks:/opt/stacks
environment:
- DOCKGE_STACKS_DIR=/opt/stacks
portainer:
image: portainer/portainer-ce
container_name: portainer
restart: unless-stopped
ports:
- "9000:8000"
- "9443:9443"
networks:
- my-network
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${portainer}:/data
# IPTV相关
av3a-assistant:
image: youshandefeiyang/av3a-assistant:amd64
container_name: av3a-assistant
privileged: true
restart: unless-stopped
ports:
- 35442:35442
networks:
- my-network
restart: unless-stopped
allinone:
image: youshandefeiyang/allinone
container_name: allinone
privileged: true
restart: unless-stopped
ports:
- 35455:35455
networks:
- my-network
restart: unless-stopped
iptv-sources:
container_name: iptv-sources
ports:
- 3005:8080
image: herberthe0229/iptv-sources:latest
networks:
- my-network
restart: unless-stopped
alist:
image: xhofe/alist:latest
container_name: alist
volumes:
- ${alist}:/opt/alist/data
ports:
- 5244:5244
environment:
- PUID=1026
- PGID=100
- UMASK=022
restart: unless-stopped
joplindb:
image: postgres:16
volumes:
- ${joplin}:/var/lib/postgresql/data
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=joplin
- POSTGRES_USER=joplin
- POSTGRES_DB=joplin
joplin:
image: joplin/server:latest
depends_on:
- joplindb
ports:
- 22300:22300
restart: unless-stopped
environment:
- APP_PORT=22300
- APP_BASE_URL=${joplinwebsite}
- DB_CLIENT=pg
- POSTGRES_PASSWORD=joplin
- POSTGRES_DATABASE=joplin
- POSTGRES_USER=joplin
- POSTGRES_PORT=5432
- POSTGRES_HOST=db
networks:
- my-network
sun-panel:
container_name: sun-panel
image: hslr/sun-panel
restart: unless-stopped
ports:
- 13002:3002
volumes:
- ${sun-panel}/conf:/app/conf
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
networks:
- my-network
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
user: 1026:100
network_mode: host
volumes:
- ${navidrome}:/data
- ${musicpath}:/music:ro
environment:
- ND_DEFAULTLANGUAGE=zh-Hans
- ND_ENABLEGRAVATAR=true
- ND_ENABLETRANSCODINGCONFIG=true
restart: unless-stopped
lyricapi:
image: hisatri/lyricapi:latest
container_name: lyricapi
ports:
- 28883:28883
environment:
- TZ=Asia/Shanghai
# - API_AUTH=abc #你可以设置你的鉴权api
volumes:
- ${musicpath}:/music:ro
restart: unless-stopped
networks:
- my-network
memos:
image: neosmemo/memos:stable
container_name: memos
volumes:
- ${memos}:/var/opt/memos
ports:
- 5230:5230
restart: unless-stopped
networks:
- my-network
douban-api-rs:
container_name: douban-api-rs
restart: unless-stopped
ports:
- 24000:80
image: ghcr.nju.edu.cn/cxfksword/douban-api-rs:latest
networks:
- talebook_network
talebook:
restart: unless-stopped
container_name: talebook
image: talebook/talebook
volumes:
- ${talebook}:/data
ports:
- 28080:80
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- SSR=OFF
networks:
- my-network
sub-store:
stdin_open: true
tty: true
restart: unless-stopped
environment:
- SUB_STORE_CRON=0 0 * * *
- SUB_STORE_FRONTEND_BACKEND_PATH=/2cGwAXRGfdAx2yxza1dm
ports:
- 3019:3001
volumes:
- ${sub-store}:/opt/app/data
container_name: sub-store
image: xream/sub-store
networks:
- my-network
# 媒体库管理工具,选择其一即可
nas-tools:
image: hsuyelin/nas-tools:latest
network_mode: host
volumes:
- ${nastool}:/config # 冒号左边请修改为你想保存配置的路径
- ${media_real_path}:${media_docker_path} # 媒体目录,多个目录需要分别映射进来,需要满足配置文件说明中的要求
environment:
- PUID=1026 # 想切换为哪个用户来运行程序,该用户的uid
- PGID=100 # 想切换为哪个用户来运行程序,该用户的gid
- UMASK=000 # 掩码权限,默认000,可以考虑设置为022
- NASTOOL_AUTO_UPDATE=true # 如需在启动容器时自动升级程程序请设置为true
- NASTOOL_CN_UPDATE=false # 如果开启了容器启动自动升级程序,并且网络不太友好时,可以设置为true,会使用国内源进行软件更新
#- REPO_URL=https://ghproxy.com/https://github.com/NAStool/nas-tools.git # 当你访问github网络很差时,可以考虑解释本行注释
restart: unless-stopped
hostname: nas-tools
container_name: nas-tools
# moviepilot:
# stdin_open: true
# tty: true
# container_name: moviepilot
# hostname: moviepilot
# network_mode: host
# container_name: moviepilot
# volumes:
# - ${media_real_path}:/downloads
# - ${moviepilot}/config:/config
# - ${moviepilot}/core:/moviepilot/.cache/ms-playwright
# - /var/run/docker.sock:/var/run/docker.sock:ro
# environment:
# - NGINX_PORT=3004
# - PORT=3001
# - PUID=1026
# - PGID=100
# - UMASK=000
# - TZ=Asia/Shanghai
# - AUTH_SITE=
# - AUDIENCES_UID= #自行填入认证,具体看官方wiki:https://wiki.movie-pilot.org/install
# - AUDIENCES_PASSKEY=
# - SUPERUSER=admin
# - API_TOKEN=moviepilot
# - PROXY_HOST=${Proxy}
# restart: always
# image: jxxghp/moviepilot:latest
plex:
image: plexinc/pms-docker
container_name: plex
environment:
- TZ=Asia/Shanghai
- PLEX_CLAIM= # 这里获取https://www.plex.tv/claim/
volumes:
- ${plex}/config:/config
- ${plex}/transcode:/transcode
- ${musicpath}:/music:ro
- ${media_real_path}:/data
restart: unless-stopped
devices:
- /dev/dri:/dev/dri
network_mode: host
emby:
image: amilys/embyserver
container_name: emby
network_mode: host
environment:
- UID=0
- GID=0
- GIDLIST=100
volumes:
- ${emby}:/config
- ${media_real_path}:/data
devices:
- /dev/dri:/dev/dri
restart: unless-stopped
# 青龙面板
web:
image: whyour/qinglong
volumes:
- ${qinglong}:/ql/data
ports:
- "5700:5700"
environment:
# 部署路径非必须,以斜杠开头和结尾,比如 /test/
QlBaseUrl: '/'
restart: unless-stopped
networks:
- my-network
# 签到
qd:
image: qdtoday/qd:latest
container_name: qd
depends_on:
- redis
ports:
- "8923:80"
volumes:
- ${qd}:/usr/src/app/config
environment:
- COOKIE_SECRET=binux
- PBKDF2_ITERATIONS=400
- AES_KEY=binux
- REDISCLOUD_URL=redis://redis:6379
restart: unless-stopped
networks:
- my-network
redis:
image: redis:alpine
container_name: redis
command: ["--loglevel warning"]
volumes:
- ./redis/data:/data:rw
restart: unless-stopped
networks:
- my-network
vaultwarden:
restart: unless-stopped
container_name: vaultwarden
environment:
- TZ=Asia/Shanghai
- LOG_FILE=/data/log/vaultwarden.log
volumes:
- ${vaultwarden}:/data/
ports:
- 8057:80
image: vaultwarden/server
restart: unless-stopped
networks:
- my-network
networks:
my-network:
driver: bridge
把这两个全部放到你的docker文件夹(看个人喜欢)
# 启动
# cd 的是你自己的docker文件夹
cd /volume1/docker
docker-compose up -d
# 暂停
docker-compose stop
# 删除
docker-compose down
# 拉取镜像
docker-compose pull
# 更新
docker-compose pull && docker-compose up -d --build
# 拉取某个服务的最新镜像
docker-compose pull [service_name]
# 重启特定服务
docker-compose restart [service_name]
# 删除特定服务
docker-compose rm -f [service_name]
# 停止并删除特定服务
docker-compose stop [service_name]
# 重建并启动特定服务
docker-compose up -d [service_name]
觉得我的docker太多可以自行删改注释compose文件
转载请注明作者和出处