网上有关Docker要不信息过于分散,要不Docker部署难度大,实用性不强,今天来总结归纳比较好用Docker信息。
Docker容器推荐:
1.flatnas 导航
services: flatnas: image: qdnas/flatnas:latest # 使用的镜像 container_name: flatnas # 容器名称 restart: always # 容器重启策略:无论容器退出状态如何,始终重启 ports: - '23000:3000' # 映射端口:将宿主机的23000端口映射到容器的3000端口 volumes: - /volume4/docker/flatnas/data:/app/server/data # 映射本地 ./data 目录到容器的 /app/server/data - /volume4/others/music:/app/server/music # 映射本地 ./music 目录(替换成你音乐的目录)到容器的 /app/server/music - ./doc:/app/server/doc #文件传输数据 - ./PC:/app/server/PC #映射PC端壁纸路径 - ./APP:/app/server/APP #映射移动端壁纸路径 - /var/run/docker.sock:/var/run/docker.sock #映射Docker Socket2.DockPorts - 容器端口监控
yaml
services: tools-web: # 服务名称 image: docker0796/tools-web:latest # 使用的镜像 container_name: tools-web # 容器名称 ports: - "8088:80" # 映射端口:将宿主机的8080端口映射到容器的80端口 restart: always 4.道理鱼音乐
yaml
services: backend: image: msmkls/daoliyu-music:latest container_name: daoliyu-music-sqlite restart: always environment: - NODE_ENV=production - DB_PROVIDER=sqlite - PRISMA_SCHEMA=${PRISMA_SCHEMA-prisma/schema.sqlite.prisma} - LOG_LEVEL=${LOG_LEVEL:-info} - DEBUG=${DEBUG:-true} ports: - "5173:4000" volumes: - /volume4/docker/daoliyu/storage:/app/storage # 冒号前面映射storage子文件夹本地路径 - /volume4/others/music:/data/media # 冒号前面映射本地歌曲目录 - /volume4/others/music:/data/audiobooks # 冒号前面映射本地有声书目录 - /volume4/others/music/MV:/data/music-videos # 冒号前面映射本地音乐视频目录(MV) - /volume4/others/music:/data/playlists # 冒号前面映射本地歌单目录(音乐专辑) - /volume4/docker/daoliyu/plugins:/plugins healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:4000/health"] interval: 30s timeout: 5s retries: 55.OpenCode
services: opencode: image: ghcr.io/anomalyco/opencode:latest container_name: opencode restart: unless-stopped entrypoint: ["opencode", "web", "--hostname", "0.0.0.0", "--port", "3000"] ports: - "3111:3000" #项目打开端口,冒号前面不要冲突 volumes: - /volume4/docker/OpenCode/config:/root/.opencode - /volume4/docker/OpenCode/workspace:/workspace # opencode 的工作目录(下面重点说明,请务必熟知) environment: - WORKDIR=/workspace - LANG=C.UTF-8 - NPM_CONFIG_REGISTRY=https://registry.npmmirror.com - GIT_AUTHOR_NAME=opencode - GIT_AUTHOR_EMAIL=bot@opencode.ai6.OmniBox - 在线观影
services: omnibox: image: lampon/omnibox:latest # 使用最新的 Omnibox 镜像 container_name: omnibox # 容器名称为 omnibox restart: always # 容器自动重启策略设置为总是重启 environment: - TZ=Asia/Shanghai # 设置时区为上海 ports: - "7023:7023" # 映射本地端口 7023 到容器的 7023 端口 volumes: - ./omnibox/data:/app/data # 将本地的 ./omnibox/data 目录挂载到容器的 /app/data 目录 networks: - media-net # 使用内部网络 media-net 进行通信networks: media-net: driver: bridge # 使用默认的桥接网络驱动7.LogVar弹幕API
搭配OmniBox
yaml:
services: danmu-api: image: logvar/danmu-api:latest ports: - "9321:9321" # 热更新支持:挂载 config/.env 文件,修改后容器会自动重新加载配置(无需重启容器) volumes: - /volume4/docker/danmu/config:/app/config # config目录下需要创建.env - /volume4/docker/danmu/cache:/app/.cache # 配置.chche目录,会将缓存实时保存在本地文件 restart: unless-stopped8.情绪师:环境音,助你专注和平静
yaml:
services: moodist: # 定义名为 "moodist" 的服务 image: ghcr.nju.edu.cn/remvze/moodist # 指定要使用的 Docker 镜像 logging: # 日志相关配置 options: max-size: 1g # 限制日志文件最大大小为 1GB,避免日志无限增长 restart: always # 容器在异常退出时自动重启 ports: - 8085:8080 # 将宿主机的 8085 端口映射到容器的 8080 端口9.Anchor
yaml:
services: anchor: image: ghcr.io/zhfahim/anchor:latest container_name: anchor restart: always ports: - "9527:3000" volumes: - /volume4/docker/anchor:/data10.Paintboard 画板工具
11.newsNow
项目地址:https://github.com/ourongxing/newsnow
yaml
version: '3'
services: newsnow: image: ghcr.io/ourongxing/newsnow:latest container_name: newsnow restart: always ports: - '4444:4444' environment: - G_CLIENT_ID= - G_CLIENT_SECRET= - JWT_SECRET= - INIT_TABLE=true - ENABLE_CACHE=true12.Aguardhome
安装命令:
docker pull adguard/adguardhomedocker run --name adguardhome\ --restart unless-stopped\ -v /my/own/workdir:/opt/adguardhome/work\ -v /my/own/confdir:/opt/adguardhome/conf\ -p 53:53/tcp -p 53:53/udp\ -p 67:67/udp -p 68:68/udp\ -p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\ -p 853:853/tcp\ -p 784:784/udp -p 853:853/udp -p 8853:8853/udp\ -p 5443:5443/tcp -p 5443:5443/udp\ -d adguard/adguardhome80/443端口可以除掉
O p终端安装脚本:
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v项目地址:https://hub.docker.com/r/adguard/adguardhome
13.魔方简历
项目地址:https://github.com/JOYCEQL/magic-resume
yaml:
services: # 定义服务列表 magic-resume: # 定义名为 magic-resume 的服务 image: siyueqingchen/magic-resume:main # 使用 siyueqingchen/magic-resume:main 镜像运行容器 ports: - "3780:3000" # 将宿主机的 3780 端口映射到容器的 3000 端口 environment: - NODE_ENV=production # 设置环境变量 NODE_ENV 为 production,用于生产环境 restart: always # 设置容器在退出时总是自动重启(除非手动停止)14.Uptime Kuma
项目地址:https://github.com/louislam/uptime-kuma/releases
安装命令:
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:215.Easyvoice
项目地址:https://github.com/cosin2077/easyVoice
yaml:
services: angevoice: image: ghcr.io/ang77712829/angevoice:cpu-latest container_name: angevoice restart: unless-stopped ports: - "8100:8100" volumes: - /volume4/docker/angevoice:/app/output environment: - TZ=Asia/Shanghai16.PhotoPrism 相册管理
yaml
services: mariadb: image: mariadb:11 restart: unless-stopped environment: MARIADB_AUTO_UPGRADE: "1" MARIADB_INITDB_SKIP_TZINFO: "1" MARIADB_ROOT_PASSWORD: "supersecret" MARIADB_DATABASE: photoprism MARIADB_USER: photoprism MARIADB_PASSWORD: "change-me" volumes: # persistent database files on the NAS - /volume1/docker/photoprism/database:/var/lib/mysql photoprism: image: photoprism/photoprism:latest depends_on: - mariadb restart: unless-stopped ports: - "2342:2342"官方文档:https://docs.photoprism.app/getting-started/nas/synology/
17.Memos 文档
项目地址:https://github.com/usememos/memos
安装命令:
docker run -d \ --name memos \ -p 5230:5230 \ -v ~/.memos:/var/opt/memos \ neosmemo/memos:stable17.HivisionIDPhotos
项目地址:https://github.com/Zeyi-Lin/HivisionIDPhotos
安装命令:
docker pull linzeyi/hivision_idphotosdocker run -d -p 7860:7860 \ -e FACE_PLUS_API_KEY=7-fZStDJ···· \ -e FACE_PLUS_API_SECRET=VTee824E···· \ -e RUN_MODE=beast \ -e DEFAULT_LANG=en \ linzeyi/hivision_idphotos 18.Photopea | Online Photo Editor
类似PS,网页版
项目地址:https://github.com/photopea/photopea
安装命令:
yaml
version: '3.3' # 这是一个Docker Compose文件的版本声明,它表明该文件符合Docker Compose文件格式版本3.3services: ywsj_photopea: #服务名,可以自定义 container_name: ywsj_photopea #容器名,可以自定义 ports: - '8887:8887' # 冒号:左边的photopea可以改成任意vps上未使用过的端口,冒号右边是本docker镜像里的端口 environment: - PUID=0 # 用户ID,在终端输入id可以查看当前用户的id - PGID=0 # 组ID同上 - TZ=Asia/Shanghai #时区,可以自定义 restart: always #开启自启动其他选项看以下备注 image: kovaszab/photopea #镜像名一般都是使用的哪个镜像就写哪个镜像19.LibreTV
项目地址:https://github.com/LibreSpark/LibreTV
安装命令:
docker run -d \ --name libretv \ --restart unless-stopped \ -p 8899:8080 \ -e PASSWORD=your_password \ bestzwei/libretv:latest 影视类别
20.E视界
项目地址:https://github.com/ednovas/dongguaTV/pkgs/container/dongguatv
安装命令:
services: donggua-tv: # 服务名称为 donggua-tv image: ghcr.io/ednovas/dongguatv:latest # 使用的镜像是 ghcr.io/ednovas/dongguatv:latest container_name: donggua-tv # 容器名称为 donggua-tv ports: - "3000:3000" # 将容器的 3000 端口映射到主机的 3000 端口 environment: - TMDB_API_KEY=TMDB-api # TMDB API 密钥 - ACCESS_PASSWORD=password # 设置两个访问密码,多个密码使用逗号分隔 volumes: - ./db.json:/app/db.json # 将本地的 db.json 文件挂载到容器的 /app/db.json - ./cache.db:/app/cache.db # 将本地的 cache.db 文件挂载到容器的 /app/cache.db restart: always # 容器崩溃后自动重启注:需要将TMDB-api换成自己的,password根据自己进行修改.
21.OmniTools
项目地址:https://github.com/iib0011/omni-tools
安装命令:
services: omni-tools: image: iib0011/omni-tools:latest container_name: omni-tools restart: unless-stopped ports: - "8080:80"22.PanHub
项目地址:https://github.com/wu529778790/panhub.shenzjd.com
安装命令:
mkdir -p /root/panhub/data #在root/panhub/data创建文件夹\docker run -d --name panhub -p 3000:3000 \ -v /root/panhub/data:/app/data \ ghcr.io/wu529778790/panhub.shenzjd.com:latest23.Linux命令
项目地址:https://github.com/jaywcjlove/linux-command
安装命令:
docker pull wcjiang/linux-commanddocker run --name linux-command --rm -d -p 9665:3000 wcjiang/linux-command:latest# Ordocker run --name linux-command -itd -p 9665:3000 wcjiang/linux-command:24.卡卡字幕助手
项目地址:https://github.com/WEIFENG2333/VideoCaptioner
安装命令:
services: video-captioner: # 定义服务名称为 video-captioner image: ywsj/video-captioner # 使用 ywsj/video-captioner 这个 Docker 镜像 container_name: video-captioner # 指定容器名称为 video-captioner ports: - "8501:8501" # 映射宿主机的 8501 端口到容器的 8501 端口 volumes: - ./temp:/app/temp # 将宿主机的 temp 目录挂载到容器内的 /app/temp 目录 environment: OPENAI_BASE_URL: "" # 设置 OpenAI API 的基础 URL(可根据需求填写) OPENAI_API_KEY: "" # 设置 OpenAI API 的密钥(需替换为实际密钥) restart: always # 让容器在异常退出时自动重启25.firefox 火狐浏览器Docker版
用一个词形容,“轮中套轮”
项目地址:https://github.com/jlesage/docker-firefox
安装命令:
version: '3.8'services: firefox: image: jlesage/firefox container_name: firefox restart: unless-stopped ports: - "5888:5800" # Web/VNC 访问端口 environment: - TZ=Asia/Shanghai - DISPLAY_WIDTH=1920 - DISPLAY_HEIGHT=1080 - KEEP_APP_RUNNING=1 - VNC_PASSWORD=password - FF_OPEN_URL=https://www.baidu.com volumes: - /volume4/docker/firefox/config:/config - /volume4/docker/firefox/fonts:/usr/share/fonts/other26.觅思文档
管理后台
项目地址:https://github.com/jlesage/docker-firefox
安装命令:
version: "3.8"
services: mrdoc: image: zmister/mrdoc:v9.3 container_name: mrdoc restart: unless-stopped ports: - "8000:8000" # Web UI 访问端口 volumes: - ./data:/app/MrDoc/data # 数据持久化目录 - ./config:/app/MrDoc/config environment: - TZ=Asia/Singapore - PUID=1000 - PGID=1000 - DB_TYPE=sqlite # 默认数据库,可改为 mysql/postgres
27.PPT
主打简洁明了
安装命令
services: document: image: docker.1ms.run/heizicao/document:latest container_name: document ports: - 8030:80 restart: always28.trilium
项目地址:https://github.com/zadam/trilium
安装命令:
version: "3.8"services: trilium: image: zadam/trilium:latest container_name: trilium ports: - 8080:8089 volumes: - ./data:/home/node/trilium-data restart: unless-stopped
29.SyncTV
管理后台:
安装命令
version: "3.8"
services: synctv: image: 'synctvorg/synctv:latest' container_name: synctv restart: unless-stopped ports: - "8080:8080" # Web UI - "8081:8081" # API (可选) volumes: - ./volume4/docker/synctv/config:/app/config - ./volume4/docker/synctv/data:/app/data
environment: - PUID=0 - PGID=0 - UMASK=022 - TZ=Asia/Shanghai30.极简朋友圈
项目地址:https://github.com/kingwrcy/moments
安装命令:
services: moments: image: kingwrcy/moments:latest container_name: moments restart: always environment: PORT: 3000 JWT_KEY: $JWT_KEY ports: - 3000:3000 volumes: - /var/moments:/app/data # 持久化数据到主机的 /var/moments 目录,可以按需修31、X-ui
具体咋用得靠自己研究,安装也没使用过.
32、Oryx
可以搭配synctv,前面几期有推荐
安装命令:
docker pull registry.cn-hangzhou.aliyuncs.com/ossrs/oryx:5docker run --restart always -d -it --name oryx -v $HOME/data:/data \ -p 80:2022 -p 443:2443 -p 1935:1935 -p 8000:8000/udp -p 10080:10080/udp \ registry.cn-hangzhou.aliyuncs.com/ossrs/oryx:533.LibreTranslate
项目地址:https://github.com/LibreTranslate/LibreTranslate
安装命令:
version: '3.8'services: libretranslate: image: libretranslate/libretranslate container_name: libretranslate restart: unless-stopped ports: - "5353:5000" environment: - LT_LOAD_ONLY=en,zh # 只加载中英文模型
34.Navidrome
项目地址:https://github.com/navidrome/navidrome
安装命令:
$ docker run -d \ --name navidrome \ --restart=unless-stopped \ --user $(id -u):$(id -g) \ -v /path/to/music:/music \ -v /path/to/data:/data \ -p 4533:4533 \ -e ND_LOGLEVEL=info \ deluan/navidrome:latest
35.Answer
项目地址:https://github.com/apache/answer-plugins
安装命令:
services: answer: # Answer 应用服务 image: answerdev/answer # 使用 Answer 官方镜像 ports: - '9980:80' # 映射端口:外部访问 9980 -> 容器内部 80(左边的 9980 可以修改为未占用端口) restart: always # 容器无论如何退出都会自动重启 environment: - TZ=Asia/Shanghai # 设置时区为上海 volumes: - ./answer-data:/data # 数据持久化,宿主机当前目录下的 answer-data 文件夹挂载到容器内 /data
db: # 数据库服务(MariaDB) image: mariadb:10 # 使用 MariaDB 10 版本镜像 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # 设置数据库默认字符集为 utf8mb4,排序规则为 utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: brave # 数据库 root 用户密码(建议修改为更安全的密码) MYSQL_USER: brave # 新建的数据库用户(应用连接数据库时使用) MYSQL_PASSWORD: brave # 新建用户的密码(建议修改为更安全的密码) MYSQL_DATABASE: brave # 默认创建的数据库名称 TZ: Asia/Shanghai # 设置时区为上海 volumes: - ./mariadb:/var/lib/mysql # 数据持久化,宿主机当前目录下的 mariadb 文件夹挂载到容器内 /var/lib/mysql restart: always # 容器无论如何退出都会自动重启
36.wiki
一个基于NodeJS构建的现代、轻量且强大的维基应用
项目地址:https://github.com/requarks/wiki
安装脚本:
version: "3.8"services: wikijs: image: requarks/wiki:latest container_name: wikijs ports: - 3004:3000 volumes: - ./data:/var/lib/wiki environment: - DB_TYPE=sqlite - DB_FILE=/var/lib/wiki/database.sqlite restart: unless-stopped
37、1panel
Docker图形化管理页面,中文页面,端口可指定,有安全入口设置,还支持文件管理,ssh连接主机.
项目官网:https://1panel.cn/
一键安装脚本:
bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"2、文件快递柜
类似快递柜取件,取件码代表下载文件权限.
项目地址:https://github.com/vastsa/FileCodeBox
# Docker Hub(推荐)docker run -d --restart always -p 12345:12345 -v /opt/FileCodeBox:/app/data --name filecodebox lanol/filecodebox:latest
# 国内镜像(如果 Docker Hub 拉取缓慢)docker run -d --restart always -p 12345:12345 -v /opt/FileCodeBox:/app/data --name filecodebox docker.cnb.cool/aixk/filecodebox方式二:compose.yaml
services: filecodebox: image: lanol/filecodebox:latest container_name: filecodebox restart: unless-stopped ports: - "12345:12345" volumes: - ./data:/app/data environment: - WORKERS=4 - LOG_LEVEL=infoyaml 知识点补充:
mkdir omn;cd omn#创建omn目录,并进入此目录vim docker-compose.yml#新建docker-compose.ymldocker-compose up -d #编辑完利用此命令运行容器docker-compose ps #查看是否启动成功玩过软路由经常使用命令:vi/etc/config/network,编辑i,保存:wq
,不保存:q!编辑yml也一样
3.feishin 音乐播放器
项目地址:https://github.com/jeffvli/feishin/pkgs/container/feishin
方法一:
# Run the latest versiondocker run --name feishin -p 9180:9180 ghcr.io/jeffvli/feishin:latest
# Build the image locallydocker build -t feishin .docker run --name feishin -p 9180:9180 feishin方法二:
services: feishin: container_name: feishin # 容器名称 image: ghcr.io/jeffvli/feishin:latest # Feishin 镜像(支持 Jellyfin/Navidrome) environment: - SERVER_NAME=navidrome # 预定义的服务器名称(可自定义) - SERVER_LOCK=true # 如果为 true,且设置了 name/type/url,则用户只能输入账号密码 - SERVER_TYPE=navidrome # 服务器类型:jellyfin 或 navidrome - SERVER_URL= # 你的 Jellyfin 、Navidrome地址(示例) - PUID=1000 # 宿主机用户 ID,保持一致可避免权限问题 - PGID=1000 # 宿主机用户组 ID - UMASK=002 # 文件权限掩码,002 表示 775/664 - TZ=Asia/Shanghai # 时区(改成你所在的时区) ports: - "9180:9180" # 映射端口:宿主机 9180 → 容器 9180 restart: always # 容器异常/重启后总是自动启动
4.typecho 轻量级博客
项目地址:https://github.com/typecho/typecho
安装方法
services: typecho: # Typecho 博客服务 image: joyqi/typecho:nightly-php8.2-apache # 官方 Apache 镜像 container_name: typecho ports: - "8383:80" # 宿主机 8383 -> 容器 80 environment: TZ: Asia/Shanghai # 设置时区为上海 volumes: - ./typecho/app/usr:/app/usr # 当前目录存放 Typecho 文件 depends_on: - db # 依赖数据库 restart: always # 自动重启策略
db: # 数据库服务 image: mariadb:10.6 # MariaDB 镜像 container_name: typecho-db environment: MYSQL_ROOT_PASSWORD: root_password # 数据库 root 密码(请修改) MYSQL_DATABASE: typecho # 默认数据库 MYSQL_USER: typecho # 数据库用户 MYSQL_PASSWORD: typecho_password # 用户密码(请修改) TZ: Asia/Shanghai # 时区 volumes: - ./db:/var/lib/mysql # 数据库数据存放当前目录 restart: always5.halo 博客
项目名称:https://github.com/halo-dev/halo
安装命令:
docker run -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.24或者
services:
services:
halo:
image: registry.fit2cloud.com/halo/halo-pro:2.24
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
environment:
# JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
- JVM_OPTS=-Xmx256m -Xms256m
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=o#DwN&JSa56
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
halodb:
image: mysql:8.1.0
restart: on-failure:3
networks:
halo_network:
command:
- --default-authentication-plugin=caching_sha2_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
volumes:
- ./mysql:/var/lib/mysql
- ./mysqlBackup:/data/mysqlBackup
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 3s
retries: 5
start_period: 30s
environment:
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
- MYSQL_ROOT_PASSWORD=o#DwN&JSa56
- MYSQL_DATABASE=halo
networks:
halo_network:注:有些容器配置需要根据自己目录进行结构调整.